Как преобразовать массив с ключами/значениями в JSON С#

Я совершенно новый для С#, и я уже дал себе головную боль. Я знаю, что это, вероятно, детские вещи для вас, но я потратил час + googleing и не могу работать.

Все, что я пытаюсь сделать, это преобразовать массив в JSON. Я хорошо знаю PHP, поэтому вот пример того, что я пытаюсь сделать (в PHP):

$myarr=array("key1"=>"value for key 1","key2"=>"value for key 2");

$jsonArray=json_encode($myarr);

поэтому $jsonArray будет: {"key1":"value for key 1","key2":"value for key 2"}

Теперь я пытаюсь сделать именно это, но в С#.

Это то, что у меня есть до сих пор:

 String[] keys = new String[] { "emailSend","toEmail"};
 String[] values = new String[] {textBox2.Text,textBox1.Text};
 JavaScriptSerializer js = new JavaScriptSerializer();
 string json = js.Serialize(keys);//final json result
 MessageBox.Show(json);//show me

Я использую Visual Studio С# 2010, который бросает эту ошибку (с кодом выше):

Невозможно найти имя типа или пространства имен JavaScriptSerializer (вам не хватает директивы using или ссылки на сборку?)

Любые идеи о том, что я делаю неправильно здесь? Благодаря

Ответ 1

Похоже, у вас нет правильной инструкции using? Добавьте в верхнюю часть файла следующее:

using System.Web.Script.Serialization;

EDIT. Чтобы правильно отформатировать JSON, используйте Dictionary вместо этого:

var keyValues = new Dictionary<string, string>
               {
                   { "emailSend", textBox1.Text },
                   { "toEmail", textBox2.Text }
               };

JavaScriptSerializer js = new JavaScriptSerializer();
string json = js.Serialize(keyValues);
MessageBox.Show(json);

Ответ 2

как насчет использования JSON.NET и класса JObject?

var obj = new JObject();

obj["One"] = "Value One";
obj["Two"] = "Value Two";
obj["Three"] = "Value Three";

var serialized = JsonConvert.SerializeObject(obj);

дает вам

{"One":"Value One","Two":"Value Two","Three":"Value Three"}