반응형
JObject를 통해 어떻게 계산합니까?
JObject에 있는 데이터에 액세스하는 방법을 결정하려고 하는데 사용 방법을 아무리 생각해도 결정할 수 없습니다.
JObject Object = (JObject)Response.Data["my_key"];
콘솔을 사용하여 콘솔에 인쇄할 수 있습니다.WriteLine(오브젝트)에 데이터가 표시되며 다음과 같습니다.
{
"my_data" : "more of my string data"
...
}
근데 어떻게 반복해야 할지 모르겠어요.생각나는 사람 있어요?저는 지금 너무 막막해요.
의 메뉴얼을 참조하면, 실장되어 있는 것을 알 수 있습니다.IEnumerable<KeyValuePair<string, JToken>>
. 따라서, 단순히 v-in-in-in-in-in-in-in-in-in-in-inforeach
:
foreach (var x in obj)
{
string name = x.Key;
JToken value = x.Value;
…
}
JProperty 오브젝트를 JToken에 캐스팅함으로써 JProperty 오브젝트를 통해 JObject를 열거할 수 있습니다.
foreach (JProperty x in (JToken)obj) { // if 'obj' is a JObject
string name = x.Name;
JToken value = x.Value;
}
다른 JObject 내부에 네스트된 JObject가 있는 경우 접근자가 JToken을 반환하기 때문에 캐스트를 할 필요가 없습니다.
foreach (JProperty x in obj["otherObject"]) { // Where 'obj' and 'obj["otherObject"]' are both JObjects
string name = x.Name;
JToken value = x.Value;
}
그 대답은 나에게 통하지 않았다.나는 그것이 어떻게 그렇게 많은 표를 얻었는지 모르겠다.그래도 방향을 알려주는 데는 도움이 되긴 했지만요
이 답변은 저에게 효과가 있었습니다.
foreach (var x in jobj)
{
var key = ((JProperty) (x)).Name;
var jvalue = ((JProperty)(x)).Value ;
}
나 같은 사람, 린크 중독자, 그리고 svick의 대답에 따르면, 린크 접근법은 다음과 같습니다.
using System.Linq;
//...
//make it linq iterable.
var obj_linq = Response.Cast<KeyValuePair<string, JToken>>();
이제 다음과 같은 linq 식을 만들 수 있습니다.
JToken x = obj_linq
.Where( d => d.Key == "my_key")
.Select(v => v)
.FirstOrDefault()
.Value;
string y = ((JValue)x).Value;
아니면 그냥:
var y = obj_linq
.Where(d => d.Key == "my_key")
.Select(v => ((JValue)v.Value).Value)
.FirstOrDefault();
또는 모든 데이터에 대해 반복할 수 있습니다.
obj_linq.ToList().ForEach( x => { do stuff } );
언급URL : https://stackoverflow.com/questions/10543512/how-do-i-enumerate-through-a-jobject
반응형
'programing' 카테고리의 다른 글
브라우저가 AJAX 요청을 캐싱하지 않음 (0) | 2023.03.22 |
---|---|
Azure Wordpress 및 Scalable Wordpress (0) | 2023.03.22 |
Twitter API 오류 215 (0) | 2023.03.22 |
Content-type을 "application/json" POST 메서드, RESTful API로 변경 (0) | 2023.03.17 |
React.js: 튜토리얼의 예가 작동하지 않습니다. (0) | 2023.03.17 |