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

13 .net c# arrays json

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

我要做的就是将数组转换为JSON.我很了解PHP,所以这里是我正在尝试做的一个例子(在PHP中):

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

$jsonArray=json_encode($myarr);
Run Code Online (Sandbox Code Playgroud)

所以$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
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio C#2010,它会抛出此错误(使用上面的代码):

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

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

mat*_*mmo 27

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

using System.Web.Script.Serialization;

编辑:要获得格式正确的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);
Run Code Online (Sandbox Code Playgroud)

  • 这是在System.Web.Extensions.dll中,以防您没有将其作为引用加载(即;默认情况下winforms或wpf项目不具有它).您可以选择使用类似[fastJSON](http://www.codeproject.com/Articles/159450/fastJSON)的内容.序列化对象比使用JavaScriptSerializer更容易,更快捷. (4认同)
  • 检查我的编辑我已经为您提供了所需的代码,您需要使用字典来获取该格式. (2认同)

MUG*_*G4N 16

如何使用JSON.NET和JObject类?

var obj = new JObject();

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

var serialized = JsonConvert.SerializeObject(obj);
Run Code Online (Sandbox Code Playgroud)

给你

{"One":"Value One","Two":"Value Two","Three":"Value Three"}
Run Code Online (Sandbox Code Playgroud)