2016-12-29 2 views
-2

저는 Visual Studio와 Xamarin으로 C#을 익히고 놀고 있습니다. 는 나는이처럼 보이는에서 JSON 결과를 얻을 웹 서비스를 가지고 :JSON을 객체로 변환하려면 어떻게해야합니까?

{"Vorname": "MYNAME", "AusweisNr": "894", "MitgliedsNr": "33203", "returnstr": "None", "returncode": "0"} 

난 할 노력하고있어 나는 몇 가지 텍스트 필드를 채울 수있는 데이터를 사용하는 것입니다,하지만 난하지 않습니다 전환 방법을 이해하십시오. 나는 이미 JsonConvert으로 조금 놀았지만 작동시키지 못했습니다.

+0

무엇으로 변환 하시겠습니까? –

+0

질문 제목에 해시 태그를 사용하지 마십시오. – Stijn

+0

안녕하세요. 필립. Welcome to Stackoverflow. 여기에 좋은 SO 질문을 작성하는 방법을 읽어보십시오. http : // stackoverflow.com/help/how-to-ask – garfbradaz

답변

4

이러한 속성을 가진 클래스를 만듭니다

var myObj = JsonConvert.DeserializeObject<SomeMeaningfulName>(yourJsonString); 
0

당신은 다음과 같은 간단한 클래스를 만들 수 있습니다 :

public class Person 
{ 
    public string Vorname { get; set; } 
    public string AusweisNr { get; set; } 
    public string MitgliedsNr { get; set; } 
    public string returnstr { get; set; } 
    public string returncode { get; set; } 
} 

public class SomeMeaningfulName 
{ 
    public string Vorname { get; set; } 
    public string AusweisNr { get; set; } 
    public string MitgliedsNr { get; set; } 
    public string returnstr { get; set; } 
    public string returncode { get; set; } 
} 

그런 다음 해당 클래스로 문자열을 역 직렬화 할 수 있습니다

그리고 직렬화하기 :

,536 이 경우
string json = "{'Vorname': 'MYNAME', 'AusweisNr': '894', 'MitgliedsNr': '33203', 'returnstr': 'None', 'returncode': '0'}" 
Person person = new JavaScriptSerializer().Deserialize<Person>(json); 

매우 간단한 사용하지만

0

JsonConvert를 사용하여 변환하기 위해 당신이 정말 필요하면 당신은 또한 JSONConverter를 사용할 수 있기 때문에 내가 JavascriptSerializer를 사용, 당신은 공유 필드가있는 클래스가 필요 JSON 개체의 이름을 모두 공개해야합니다. 시도해보십시오

class MyJsonObject 
{ 
    public string Vorname; 
    public int AusweisNr; 
    public int MitgliedsNr; 
    public string returnstr; 
    public int returncode; 
} 

원하는 경우 변수가 아닌 공개 속성으로 설정할 수도 있습니다. 변환하려면 이와 같이해야합니다. jsonData

MyJsonObject obj= JsonConvert.DeserializeObject<MyJsonObject>(jsonData); 

은 JSON 코드를 포함하는 문자열입니다. 그런 다음 모든 데이터를 텍스트 필드에 복사 할 수 있습니다.

0

하여 JSON 문자열을 얻고이 WebSite 설정은, 당신을 위해 클래스 객체를 생성합니다이 웹 사이트는이 객체를 가지고 프로젝트에 넣어.
예 :

public class RootObject // object name 
{ 
    //atributtes names 
    public string Vorname { get; set; } 
    public string AusweisNr { get; set; } 
    public string MitgliedsNr { get; set; } 
    public string returnstr { get; set; } 
    public string returncode { get; set; } 
} 

그래서이 JSON을 dowloand 및 문자열 VAR에 예를 넣어 것입니다 :

var Apiurl = "http://youAPI.com/something/something/"; 
var JSONString= new System.Net.WebClient().DownloadString(Apiurl);//this will download all text what the Apiurl return 

그 후, 당신은/변환 넣어하는 객체에 JsonString 역 직렬화.

RootObject objectJSON = JsonConvert.DeserializeObject<RootObject>(JSONString); 

마지막 코드에서 무슨 일이 발생합니까?

yourJsonObject nameForThisObject = JsonConvert.DeserializeObject<yourObjectJsonClass>(yourJsonString); 

참고 : ObjectJsonClass (내 RootObject)는 SAMES JSON의 속성이 있어야합니다.

관련 문제