从C#中的JsonArray读取整数或双精度

时间:2016-02-25 09:19:51

标签: c# arrays json

我必须从我的服务器收到一个json文件,我需要解析它。到现在为止,我收到所有字段作为字符串:

{"key1":"12", "key2":"23.5",...}

我这样读了:

JsonArray root = JsonValue.Parse(jsonString).GetArray();

for (uint i = 0; i < root.Count; i++)
        {
            int id = Convert.ToInt32(root.GetObjectAt(i).GetNamedString("id"));
            int state = Convert.ToInt32(root.GetObjectAt(i).GetNamedString("state"));
 .....

但是现在,我收到一些数据作为整数或双精度而且我不知道如何以我迄今为止的方式解析它,因为没有方法返回带有给定字符串的int。

{"key1":12, "key2":23.5,...}

1 个答案:

答案 0 :(得分:1)

System.Json不允许您查看整数和浮点数之间的差异。你可能想尝试Json.NET,它可以:

var parsed = JObject.Parse("{\"key1\":12, \"key2\":23.5 }");

foreach (JProperty node in parsed.Children())
{
    Console.WriteLine("{0}: {1}", node.Name, node.Value.Type);
}

输出:

key1: Integer
key2: Float

当然,还有其他库可以处理JSON,但至少Json.NET可以与Silverlight配合使用并支持你的场景。