2016-06-03 2 views
1

다음 코드가 제공하는 URL에서 json의 특정 객체 데이터를 가져오고 싶습니다. 1json의 특정 객체 데이터 읽기

1.로 JSON을지도하는 클래스를 작성

솔루션 : 내가 두 번째 객체 EmailAddressSuffices ' enter image description here

WebRequest request = WebRequest.Create(
     "https://atea-dev.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=https%3a%2f%2flocalhost%3a44300%2fAccount%2fLoginCallback%2f&reply_to=https%3a%2f%2flocalhost%3a44300%2fAccount%2fLoginCallback%2f&context=&request_id=&version=1.0&callback="); 
    request.Credentials = CredentialCache.DefaultCredentials; 
    WebResponse response = request.GetResponse(); 
    Stream dataStream = response.GetResponseStream(); 
    StreamReader reader = new StreamReader(dataStream); 
    string responseFromServer = reader.ReadToEnd(); 
+0

json을 C# 객체로 deserialize하려고합니까? – currarpickt

+0

아니요, 아직 시도하지 않았습니다. –

답변

0

이 쉽게 JSON 응답을 역 직렬화 할 수 JSON.Net 사용이 필요합니다

public class ResponseObject 
{ 

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

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

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

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

    [JsonProperty("EmailAddressSuffixes")] 
    public IList<string> EmailAddressSuffixes { get; set; } 
} 

2. J 비 직렬화 SON 사용 JsonConvert.Deserialize<ResponseObject>()

var myresponse = JsonConvert.DeserializeObject<List<ResponseObject>>(responseFromServer); 
string email = myresponse[1].EmailAddressSuffixes[0]; 

해결 방법 2

는 전체 일을 derializing 귀찮게하지 않으려는 경우에 당신은이 작업을 수행 할 수 있습니다

JArray array = JArray.Parse(responseFromServer); 
string q = array[1]["EmailAddressSuffixes"][0].ToString(); 

하지만 당신은 있는지 확인해야합니다 귀하의 개체가 올바른 형식 (그리고 배열에 항목의 오른쪽 번호입니다.