JSON.net을 사용한JToken 이름/키 취득
이렇게 생긴 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"];
foreach (JProperty attributeProperty in attributes)
{
var attribute = attributes[attributeProperty.Name];
var my_data = attribute["your desired element"];
}
JObject 기본 반복기는 키/값 쌍에 대한 사전 반복입니다.
JObject obj = JObject.Parse(response);
foreach (var pair in obj) {
Console.WriteLine (pair.Key);
}
Linq를 사용하면 다음과 같이 쓸 수 있습니다.
JArray array = JArray.Parse(json);
foreach (JObject content in array.Children<JObject>())
{
List<string> keys = content.Properties().Select(p => p.Name).ToList();
}
이 경우,JToken키 이름을 알 수 없으며 이름에 관계없이 키의 값만 필요합니다.JToken.Values()방법.
다음 샘플은 다음과 같이 가정합니다.JTokenvalue는 원시 유형입니다.첫 번째로 발견된 값이 추출됩니다.
어레이 값을 지원하도록 솔루션을 확장할 수 있습니다.
JToken fooToken = sourceData.
int someNum = fooToken .Values<int?>().First() ?? 0;
int someString = fooToken .Values<string>().First();
가장 간단한 방법은 JSON 개체의 각 항목 경로를 확인하는 것입니다.
For Each token As JToken In json
Dim key= token.Path.Split(".").Last
Next
언급URL : https://stackoverflow.com/questions/21002297/getting-the-name-key-of-a-jtoken-with-json-net
'programing' 카테고리의 다른 글
| Word Press를 ASP와 함께 사용하거나 통합할 수 있습니까?인터넷? (0) | 2023.03.16 |
|---|---|
| jq를 사용하여 배열의 모든 값 가져오기 (0) | 2023.03.16 |
| 빈 개체에 대해 json 열을 쿼리하는 방법 (0) | 2023.03.16 |
| SQL 쿼리에서 콜론 기호 ":"의 역할은 무엇입니까? (0) | 2023.03.16 |
| Ionic Framework를 사용한 로그인/로그아웃 이력 클리어 및 새로고침 페이지 (0) | 2023.03.16 |