[英]How to turn String (json-like) into Object
在我的控制器中,我得到一个字符串,它是JSON:
String json_string = this.Request.Content.ReadAsStringAsync().Result;
看起来像这样:
{
"21": {"Id":21,"DisplayOrder":3, ... snip ... },
"333":{"Id":333,"DisplayOrder":2, ... snip ... },
"591":{"Id":591,"DisplayOrder":1, ... snip ... }
}
我在此JSON的结构中没有发言权,因此无法将其格式化为没有键的内容。 因为ID在该词典的值之内,所以不需要它们的键。
无论如何,当我遍历该结构中的“行”时,如何转换json_string
以便仅取出想要的两个项目……Id,DisplayOrder?
像这样:
int Id = row_item.Id;
int DisplayOrder = row_item.DisplayOrder;
谢谢! 埃里克
string json = @"{
""21"": {""Id"":21,""DisplayOrder"":3},
""333"":{""Id"":333,""DisplayOrder"":2},
""591"":{""Id"":591,""DisplayOrder"":1}}";
var list = new JavaScriptSerializer()
.Deserialize<Dictionary<string, Dictionary<string, object>>>(json)
.Values
.ToList();
Console.WriteLine(list[0]["Id"]); // <--21
您也可以使用Json.Net做同样的事情
var jObj = JsonConvert
.DeserializeObject<Dictionary<string, Dictionary<string, object>>>(json)
.Values
.ToList();
Console.WriteLine(jObj[0]["Id"]);
dynamic
也可以利用
var jObj = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json)
.Values
.ToList();
Console.WriteLine(jObj[0].DisplayOrder);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.