Как преобразовать массив с ключами/значениями в 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"}