我是C#的新手,我已经让自己头疼了。我知道这对你来说可能是孩子们的东西,但我花了一个小时+ 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"}
现在,我正在努力做到这一点,但在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指令或程序集引用?)
关于我在这里做错了什么的想法?感谢
答案 0 :(得分: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);
答案 1 :(得分:15)
如何使用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"}