0

这是我收到的数据列表,属性名称可以不同;

{"data":"[
    {   
        "id":"1",
        "name":"aa",
        "email":"aa@aa.com",
        "address":"11"
    },
    {   
        "id":"2",
        "name":"bb",
        "email":"bb@bb.com",
        "address":"22"
    }
]"}

这是我的 C# 代码

我在第 3 行得到一个错误。Unable to read json data. Check the url you typed.Invalid cast from 'System.String' to 'Newtonsoft.Json.Linq.JObject'.

 var jsonStr = wc.DownloadString(url);
 JToken outer = JToken.Parse(jsonStr);
 JObject inner = outer["data"].Value<JObject>();

 List<string> keys = inner.Properties().Select(p => p.Name).ToList();

我的输出怎么会是这样的;

身份证
姓名
电子邮件
地址

如果我还考虑 n 级数组,例如address > streetaddress > postcode

非常感谢。

4

1 回答 1

6
var jObj = JObject.Parse(json);
var props = jObj["data"][0].Select(x => ((JProperty)x).Name).ToList();

顺便说一句:你的 json 不正确,应该是这样的

{data:[
 { "id":"1", 
        "name":"aa",
        "email":"aa@aa.com",
        "address":"11"
    },
    {"id":"2",
        "name":"bb",
        "email":"bb@bb.com",
        "address":"22"
    }
]}

在您的问题中查看"之后data:

于 2013-08-25T19:31:44.793 回答