如何将带有键/值的数组转换为JSON c#

我是C#的新手,我已经让自己头疼了。 我知道这可能是孩子们给你的东西,但我花了一个小时+谷歌周围,似乎无法解决它。

我要做的就是将数组转换为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"}

现在,我正在努力做到这一点,但在C#中。

这是我到目前为止:

  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 C#2010,它会抛出此错误(使用上面的代码):

找不到类型或命名空间名称’JavaScriptSerializer’(您是否缺少using指令或程序集引用?)

关于我在这里做错了什么的想法? 谢谢

看起来你没有正确的using声明? 将以下内容添加到文件顶部:

using System.Web.Script.Serialization;

编辑 :要获得格式正确的JSON,请改用Dictionary

 var keyValues = new Dictionary { { "emailSend", textBox1.Text }, { "toEmail", textBox2.Text } }; JavaScriptSerializer js = new JavaScriptSerializer(); string json = js.Serialize(keyValues); MessageBox.Show(json); 

如何使用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"}