2017-11-03 9 views
-1

에 대한 Json 응답의 객체 역 직렬화 현재 Xamarin.Forms가 포함 된 모바일 응용 프로그램을 작성 중이며 문제는 하나의 문자열 출력 대신 별도의 변수에서 API의 응답이 필요하다는 것입니다.배열 C#

내 API 출력 : 내가 응답을 역 직렬화하는 Newtonsoft을 사용하고 있는데 내가 public bool error { get; set; }을 인쇄 할 수 있지만, 다른 바르가 작동하지 않기 때문에 문제가 "user":{...} 뒤에 중괄호이라고 생각

{"error":false,"user":{"id":3,"email":"[email protected]","vorname":"root","nachname":"toor","wka":"wka1"}} 

.

class JsonContent 
    { 
     public bool error { get; set; } 
     public int id { get; set; } 
     public string email { get; set; } 
     public string vorname { get; set; } 
     public string nachname { get; set; } 
     public string wka { get; set; } 
    } 

테스트 :

JsonContent j = JsonConvert.DeserializeObject<JsonContent>(response.Content); 
bool pout = j.error; //output: false 

JsonContent j = JsonConvert.DeserializeObject<JsonContent>(response.Content); 
int pout = j.id; //output: 0 
+2

클래스가 잘못되었습니다. JSON을 클립 보드에 복사하고 ** 메뉴 편집 ** ** ** 붙여 넣기 ** ** ** JSON을 클래스로 붙여 넣기 **를 사용하십시오. [ask]를 읽고 [둘러보기]를 가져 오십시오. – Plutonix

+1

사용자가 응답 내의 개체이고 id는 기본 응답 개체가 아닌 사용자 개체의 속성입니다. http://json2csharp.com과 같은 도구를 사용하여 데이터에 적합한 C# 클래스를 생성하는 데 도움이됩니다 – Jason

+0

데이터 모델에 bool 및 사전

답변

0

당신은 모델을 얻기 위해 C#을 계산기에 일부 JSON을 사용하여 객체. 큰 json의 모델을 가져야 할 때 도움이 될 것입니다.

public class User 
{ 
    public int id { get; set; } 
    public string email { get; set; } 
    public string vorname { get; set; } 
    public string nachname { get; set; } 
    public string wka { get; set; } 
} 

public class Example 
{ 
    public bool error { get; set; } 
    public User user { get; set; } 
} 
3

는 C# 클래스 당신이 당신의 JSON에 대한이 올바르지 않습니다. 즉 https://jsonutils.com, http://json2csharp.com

public class User 
{ 
    public int id { get; set; } 
    public string email { get; set; } 
    public string vorname { get; set; } 
    public string nachname { get; set; } 
    public string wka { get; set; } 
} 

public class JsonContent 
{ 
    public bool error { get; set; } 
    public User user { get; set; } 
} 

을해야하며, 당신은 당신의 C#으로 JSON을 역 직렬화 할 수