【发布时间】:2011-07-04 17:42:22
【问题描述】:
我需要得到:
public class Package
{
public Package()
{
name = "";
type = new List<Dictionary<string, string>>();
}
public string name { get; set; }
public List<Dictionary<string, string>> type { get; set; }
}
进入:
{
"name":"package_name",
"type":
{
"http://random.url.as.key":"random/value"
}
}
与:
Package package = new Package();
package.name = "package_name";
package.type.Add(new Dictionary<string, string>() { { "http://random.url.as.key", "random/value" } });
我明白了:
{
"name":"package_name",
"type":
[
[
{
"Key":"http:\/\/random.url.as.key",
"Value":"random\/value"
}
]
]
}
同时,与:
var package = new
{
name = "package_name",
type = new
{
http_random_url_as_key = "random/value"
}
};
我明白了:
{
"name":"package_name",
"type":
{
"http_random_url_as_key":"random/value"
}
}
我无法获得我需要的模糊 http://random.url.as.key。我曾尝试使用 JavaScriptSerializer、DataContractJsonSerializer、 和 用于 Json.NET 的自定义转换器,但都取得了有限的成功/缺点。
必须有更好的方法/我忽略的东西来通过网络获取一个简单的 JSON 对象!
【问题讨论】:
-
你用什么序列化成 JSON?
-
你第一个
Package类不会编译。您确定字段 type 是List<Dictionary<string,string>>吗?似乎您希望它在转换为 JSON 时像Dictionary<string,string>一样执行。 -
使用它来将 .net 代码序列化为 JSON 并恢复。 james.newtonking.com/projects/json-net.aspx
-
这篇文章可以帮助你解决你的问题:stackoverflow.com/a/36223340/1442180