>

일치하는 JSON 문자열을 쿼리하고 가져와야합니다. 다음은 내 JSON입니다.

HTTP RESPONSE 에서 수신 한 JSON을 쿼리해야합니다. code=2 에서 JSON과 일치하십시오. 그런 다음 text=Jenny kisworth 를 추출하십시오.

JSON

[
  {
    "code":1234,
    "parentCode":9898,
    "language":{
      "lookup": "IN",
      "code": 1
    },
    "parentType": "Patient",
    "text": "James Berth"
  },
  {
    "code":4567,
    "parentCode":8989,
    "language":{
      "lookup": "IN",
      "code": 1
    },
    "parentType": "Patient",
    "text": "James Bond"
  },
 {
    "code":89101,
    "parentCode":2525,
    "language":{
      "lookup": "OUT",
      "code": 2
    },
    "parentType": "Patient",
    "text": "Jenny kisworth"
  }
]

코드 :

public class JSonData
    {
        [Newtonsoft.Json.JsonProperty("code")]
        public string code { get; set; }
        [Newtonsoft.Json.JsonProperty("language")]
        public List<Datum> language { get; set; }
    }
    public class Datum
    {
        public string lookup { get; set; }
        public int code { get; set; }
    }
//only posting code relevant to the subject
HttpResponseMessage responseCode = client.GetAsync(codeParameters).Result;
if (responseCode.IsSuccessStatusCode)
{
  var dataObjects = responseAlternateTitles.Content.ReadAsStringAsync();
            dataObjects.Wait();
            string dataObjectsString = dataObjects.Result.ToString();
            var data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JSonData>>(dataObjectsString);
}

위의 오류가 발생합니다 : Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List 1 [BCMTest.Datum] '형식에는 JSON 배열이 필요하기 때문에

  • 답변 # 1

    수업은 다음과 같이 보일 것입니다. 어떻게 알 수 있습니까? http://json2csharp.com/

    public class Language
    {
        public string lookup { get; set; }
        public int code { get; set; }
    }
    public class JSonData
    {
        public int code { get; set; }
        public int parentCode { get; set; }
        public Language language { get; set; }
        public string parentType { get; set; }
        public string text { get; set; }
    }
    ...
    var data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JSonData>>(dataObjectsString);
    
    

  • 답변 # 2

    클래스 객체에서 예상 한대로 언어로 배열 객체가 JSON에 없기 때문에 오류가 발생합니다.

    와이즈 비즈 변경  

    JSonData class -> language
    
    

  • 답변 # 3

    public class JSonData
    {
        [Newtonsoft.Json.JsonProperty("code")]
        public string code { get; set; }
        [Newtonsoft.Json.JsonProperty("language")]
        public Datum language { get; set; }
    }
    
    

    public class Language { public string lookup { get; set; } public int code { get; set; } } public class JSonData { [Newtonsoft.Json.JsonProperty("code")] public string code { get; set; } [Newtonsoft.Json.JsonProperty("parentCode")] public int parentCode { get; set; } [Newtonsoft.Json.JsonProperty("language")] public Language language { get; set; } [Newtonsoft.Json.JsonProperty("parentType")] public string parentType { get; set; } [Newtonsoft.Json.JsonProperty("text")] public string text { get; set; } } var data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<JSonData>>(dataObjectsString); var filtereddata = data.Where(s => s.language.code.Equals(2));

  • 이전 mysql - sql - 현재 연도의 결과 만 가져 오기
  • 다음 c++ - FLTK Window 고정이 일관되지 않습니다