如何将具有键/值的数组转换为JSON C#

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

请问这是什么问题?谢谢。

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);

4
如果您没有将System.Web.Extensions.dll加载为引用(例如winforms或wpf项目默认情况下不会加载它),则需要在该程序集中找到此内容。你可以选择使用fastJSON之类的东西。序列化对象比使用JavaScriptSerializer更容易且更快。 - erodewald
1
我现在收到了错误信息:The type or namespace name 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) 谢谢 xD - user849137
1
@nav_nav 嗯,奇怪。你是在使用早于 .NET 3.5 的版本吗? - Mathew Thompson
2
检查我的编辑,我已经为您提供了所需的代码,您需要使用字典来将其转换为该格式。 - Mathew Thompson
.Net Core 3.0有哪些库? - Md Aslam
显示剩余9条评论

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"}

1
由此,我得到了以下错误信息:找不到类型或命名空间名称“JObject”(是否缺少 using 指令或程序集引用?)当前上下文中不存在名称“JsonConvert” - user849137
如果出现“找不到JObject”的情况,您需要添加“using Newtonsoft.Json.Linq;”库。 - Fil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接