0
Newtonsoft를 처음 사용하고 json 파일을 deserialise하여 특정 데이터 포인트를 쿼리하려고합니다. 다음은 json의 샘플입니다.Deserialise Json 파일 (newtonsoft 및 linq 쿼리 포함)
[
{
"reward_type": "1",
"rejected": "0",
"user_id": "538653",
"granted": "0"
},
{
"reward_type": "5",
"rejected": "0",
"user_id": "536345",
"granted": "1"
},
{
"reward_type": "5",
"rejected": "0",
"user_id": "539493",
"granted": "1"
}
]
각 유형 다음에 값을 쿼리하려고합니다. 나는 며칠 동안 Json.net의 문서를 고심하려고 노력해 왔지만 파일을 비 직렬화하는 예제를 찾는 데 어려움을 겪고있다.
다음은 내가 파일을 구문 분석하는 데 사용한 것입니다.
InitializeComponent();
JArray adData1 = JArray.Parse(File.ReadAllText(@"c:\ads.json"));
using (StreamReader file = File.OpenText(@"c:\ads.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
JsonSerializer serializer = new JsonSerializer();
JArray adData2 = (JArray)serializer.Deserialize(file, typeof(JArray));
JObject rewardType = (JObject)adData2[1];
label1.Text = rewardType.ToString();
}
도움을 주시면 감사하겠습니다.
가장 좋은 방법 (IMHO)을하는 DTO/POCO 객체로 역 직렬화하기 (그것에 기본 속성을 가진 간단한 C# 클래스) 그리고 나서 그것/그들에 대한 linq 쿼리. https://www.newtonsoft.com/json/help/html/DeserializeObject.htm – granadaCoder
익명 형식을 사용할 수 있습니다. IMHO를 유지하기가 어렵습니다. https://www.newtonsoft.com/json/help/html/DeserializeAnonymousType.htm – granadaCoder
JSON 샘플에 유효한 대괄호 배열을 만드는 둘러싸인 대괄호'[]'가 없습니다. JSON 전체에 대괄호가 실제로 있으면 질문에 표시해야합니다. 거기에 없으면 JSON이 유효하지 않으며 파싱에 문제가있는 이유 중 하나 일 수 있습니다. –