如何将对象从json格式转换为整数格式

时间:2012-08-16 07:20:32

标签: json asp.net-mvc-3 visual-studio-2010

我使用json.stringify()方法将数组从视图传递给控制器​​。

该值传递给控制器​​并位于

"\"[{\\\"id\\\":1 "id\\\":2}]\""格式。我认为这是json格式,我想将其转换为{id:1,id:2}格式。

我尝试使用JsonConvert.SerializeObject()将其转换为字符串格式, 但它以"\"\\\"[{\\\\\\\"id\\\\\\\":1}]\\\"\""格式显示。

您能告诉我如何转换为{id:1,id:2}格式/整数格式?

2 个答案:

答案 0 :(得分:0)

var serializer = new JavaScriptSerializer();
var data = serializer.Deserialize<object[]>(jsonString);

答案 1 :(得分:0)

据我所知,JSON数据表示包含字典的数组。您可以获得数据的Dictionary表示,如下所示:

var json = "[{\"id\":1, \"id\": 2}]";
        Dictionary<string, int>[] obj = JsonConvert.DeserializeObject<Dictionary<string, int>[]> (json);
var dict = obj[0];

我不确定这是不是你所追求的,因为你说你要像{id: 2}那样显示它。如果要像这样打印出来,可以构建字典的字符串表示形式:

var sb = new StringBuilder();
sb.Append("{");
foreach (var item in dict)
{
    sb.Append(string.Format("{0}: {1}, ", item.Key, item.Value));
}
sb.Remove(sb.Length - 2, 2);
sb.Append("}");
Console.WriteLine(sb.ToString());

这会打印{id: 2}

要检索“id”的值,如果这是你的意思,你可以这样做:

var val = dict["id"];