如何从json字符串中读取数组中的属性名称?

Cem*_*Cem 0 c# json json.net

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

{"data":"[
    {   
        "id":"1",
        "name":"aa",
        "email":"aa@aa.com",
        "address":"11"
    },
    {   
        "id":"2",
        "name":"bb",
        "email":"bb@bb.com",
        "address":"22"
    }
]"}
Run Code Online (Sandbox Code Playgroud)

这是我的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();
Run Code Online (Sandbox Code Playgroud)

我的输出怎么样这样;

id
name
emal
地址

如果我也考虑n级数组,如address > street和,那将是很好的address > postcode

非常感谢.

I4V*_*I4V 6

var jObj = JObject.Parse(json);
var props = jObj["data"][0].Select(x => ((JProperty)x).Name).ToList();
Run Code Online (Sandbox Code Playgroud)

BTW:你的json不正确,它应该是这样的

{data:[
 { "id":"1", 
        "name":"aa",
        "email":"aa@aa.com",
        "address":"11"
    },
    {"id":"2",
        "name":"bb",
        "email":"bb@bb.com",
        "address":"22"
    }
]}
Run Code Online (Sandbox Code Playgroud)

在你的问题中查看"后面data:的内容