다음과 같은 JSON이 있습니다.
[
{
"MobileSiteContent": {
"Culture": "en_au",
"Key": [
"NameOfKey1"
]
}
},
{
"PageContent": {
"Culture": "en_au",
"Page": [
"about-us/"
]
}
}
]
나는 이것을 JArray로 구문 분석합니다.
var array = JArray.Parse(json);
그런 다음 배열을 반복합니다.
foreach (var content in array)
{
}
content
이다 JToken
각 항목의 “이름”또는 “키”를 검색하려면 어떻게합니까?
예 : “MobileSiteContent”또는 “PageContent”
답변
JToken
기본 클래스입니다 JObject
, JArray
, JProperty
, JValue
, 당신은 사용할 수있는 등 Children<T>()
, 예를 들어, 특정 유형의되는 JToken의 아이들의 필터링 된 목록을 얻을 방법을 JObject
. 각각 JObject
에는 메서드 JProperty
를 통해 액세스 할 수있는 개체 컬렉션이 있습니다 Properties()
. 각각에 대해 JProperty
, 당신은 얻을 수 있습니다 Name
. (물론 Value
원하는 경우 다른을 얻을 수도 있습니다 JToken
.)
종합하면 다음과 같습니다.
JArray array = JArray.Parse(json);
foreach (JObject content in array.Children<JObject>())
{
foreach (JProperty prop in content.Properties())
{
Console.WriteLine(prop.Name);
}
}
산출:
MobileSiteContent
PageContent
답변
JObject obj = JObject.Parse(json);
var attributes = obj["parent"]["child"]...["your desired element"].ToList<JToken>();
foreach (JToken attribute in attributes)
{
JProperty jProperty = attribute.ToObject<JProperty>();
string propertyName = jProperty.Name;
}
답변
JObject의 기본 반복기는 키 / 값 쌍을 반복하는 사전입니다.
JObject obj = JObject.Parse(response);
foreach (var pair in obj) {
Console.WriteLine (pair.Key);
}