2016-11-11 3 views
0

저는 JSON을 처음 사용하므로 저를 도울 수 있기를 바랍니다. 내가 이런 짓을 : link 당신은 내가 많은 필드가 볼 수 있듯이, 각 필드가 몇 번 표시됩니다 :JSON의 일부 필드를 구문 분석

var myfields = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(s); 

이는 JSON에 대한 링크입니다. 이제 첫 번째에만 액세스 할 수 있습니다. 예 :

final = myfields.results.First().warnings[0]; 

이 문자열에는 첫 번째 경고 필드가 있습니다. 0 - 1 대신 넣으려고했지만 오류가 발생합니다.

다른 사람들을 어떻게 구할 수 있습니까?

감사

+1

당신은 무엇을 시도 했습니까? 우리가받은 json의 샘플과 기대되는 결과를 제공하십시오. – Neyoh

+1

직장을 보여주십시오. 우리는 당신이 겪고있는 문제를 보지 않고 문제를 해결하도록 도와 줄 수 없습니다. – Soviut

+0

문제를 시연하는 [mcve]가 도움을 필요합니다. https://stackoverflow.com/help/how-to-ask를 참조하십시오. – dbc

답변

4

는 JSON 의견에

public class YourTwoField 
{ 
    [JsonProperty("field1")] 
    public string FieldOne { get; set; } 

    [JsonProperty("field2")] 
    public string FieldTwo { get; set; } 
} 

var myfields = Newtonsoft.Json.JsonConvert.DeserializeObject<YourTwoField>(yourJsonString); 
// use values 
myfields.FieldOne 

업데이트를 당신이 필요로하는 유일한 필드 클래스를 만든 다음 역 직렬화 :

귀하의 문제를 당신은에서 충분한 정보를 제공하지 않았다고했다 처음. 필요한 필드가 JSON 계층의 맨 아래에 있습니다. 수업 곳으로> 클래스로 JSON을 붙여

지금 얻을 모든 JSON 스키마 ->Paste Special -

  1. 는 Visual Studio를 열고 빈 파일에서 클립 보드
  2. 그런 Edit 당신의 JSON 결과를 복사 내 생각에 일부 RootObject이 생성되고

    var root = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(yourJsonString); 
    
    //Then your can brows to the values you want 
    root.results.First().openfda.generic_name 
    root.results.First().openfda.brand_name 
    

    또는 모든 결과를 반복하십시오.

    foreach(var result in root.results) 
    { 
        result.openfda.generic_name; 
        result.openfda.brand_name; 
    } 
    
+0

안녕하십니까, 모두 감사합니다. 예를 들어 api 결과는 다음과 같습니다. [link] (https://api.fda.gov/drug/label.json?search=brand_name:humalog&limit=15), JSON을 직렬화 해제 할 때 문제가있었습니다. –

+0

어떤 종류의 문제입니까? 질문에 API 결과를 추가하십시오. – Fabio

+0

안녕하세요, 저는 이전에 댓글에 링크를 추가했습니다. 선택한 필드를 구문 분석 할 때 문제가 발생했습니다. 이제 팁을보고 사용하려고 노력할 것입니다. –

관련 문제