13

我对 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 指令或程序集引用?)

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

4

2 回答 2

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);
于 2012-04-30T16:48:50.867 回答
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);

给你

{"One":"Value One","Two":"Value Two","Three":"Value Three"}
于 2012-04-30T16:55:31.430 回答