웹 요청 응답에서 json 구문 분석

아스파 우그

나는 정보로 작업 할 수 있도록 http 웹 응답을 배열 또는 무언가로 구문 분석하려고합니다. 이것은 내가 얻는 json 응답입니다 (+ 훨씬 더 많지만 형식을 검열했습니다).

{
    "meta": {
        "status": 200
    },
    "data": {
        "account": {
            "account_phone_number": "XXXXXXXX",
            "account_email": "[email protected]"
        },
        "user": {
            "id": "5f2b17e7836fc7010025aed3",
            "age": 23,
        }
    }
}

콘솔이나 텍스트 상자에 "사용자"내부의 "ID"를 어떻게 쓸 수 있습니까?

이것은 내 웹 요청입니다.

private void button1_Click(object sender, EventArgs e)
{
    const string WEBSERVICE_URL = "url_here";
    try
    {
        var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
        if (webRequest != null)
        {
            webRequest.Method = "GET";
            webRequest.Timeout = 12000;
            webRequest.ContentType = "application/json";
            webRequest.Headers.Add("x-auth-token", "Auth_token");

            using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
            {
                using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
                {
                    var jsonResponse = sr.ReadToEnd();
                    richTextBox1.AppendText(jsonResponse);
                }
            }
        }
    }
    catch (Exception ex)
    {
        richTextBox1.AppendText("No workie");
    }
}

나는 다음을 시도했다 :

public class Test
{
   public string meta {get;set;}
   public string data {get;set;}
}

다음과 같이 json을 테이블로 직렬화하려고 시도합니다.

JavaScriptSerializer js = new JavaScriptSerializer();
Test[] Tester = js.Deserialize<Test[]>(jsonResponse);
richTextBox1.AppendText(Tester);

하지만 운이 없습니다. 누구든지 여기에서 올바른 방향으로 나를 가리킬 수 있습니까?

피터 차라

다른 serializer를 사용할 수있는 경우 JavaScriptSerializer부분 직렬화 해제를 활용할 수 있습니다.

의 경우 Json.NET (이전 Newtonsoft JSON라고도 함)는 적어도 두 가지 옵션이 있습니다 :

SelectToken

JObject semiParsedData = JObject.Parse(jsonResponse);
string id = (string)semiParsedData.SelectToken("data.user.id");
int age = (int)semiaParsedData.SelectToken("data.user.age");
string email = (string)semiParsedData.SelectToken("data.account.account_email");
  • Parse메서드 를 호출하면 세미 파싱 된 개체가 생성됩니다.
  • 이 객체 에서 SelectToken을 통해 Json Path 쿼리실행할 수 있습니다.
    • 구문은 XML 형식의 임의 데이터를 검색하는 데 사용할 수있는 XPath와 유사합니다.
    • 더 정확하게는 JPath 입니다.
  • SelectToken를 반환합니다 JToken. 여기에서 여러 가지 방법으로 데이터를 검색 할 수 있습니다.
    • (string)semiParsedData.SelectToken("data.user.id")
    • semiParsedData.SelectToken("data.user.id").Value<string>()
    • semiParsedData.SelectToken("data.user.id").ToObject<string>()

참조 :

indexer operator

JObject semiParsedData = JObject.Parse(jsonResponse);
JToken data = semiParsedData["data"];

JToken user = data["user"];
string id = (string)user["id"];
int age = (int)user["age"];

JToken account = data["account"];
string email = (string)account["account_email"];
  • JToken 실제로 유용하지 않은 다음 인덱서 연산자를 정의합니다.
public virtual JToken? this[object key]
{
    get => throw new InvalidOperationException("Cannot access child value on {0}.".FormatWith(CultureInfo.InvariantCulture, GetType()));
    set => throw new InvalidOperationException("Cannot set child value on {0}.".FormatWith(CultureInfo.InvariantCulture, GetType()));
}
  • 반면에 파생 클래스 JObject는이 기능을 유용하게 만들기 위해이를 재정의합니다.
    • ( JObject에서 파생되고 JContainer에서 파생 됨 JToken).
public JToken? this[string propertyName]
{
    get
    {
        ValidationUtils.ArgumentNotNull(propertyName, nameof(propertyName));
        JProperty? property = Property(propertyName, StringComparison.Ordinal);
        return property?.Value;
    }
    set
    {
        JProperty? property = Property(propertyName, StringComparison.Ordinal);
        if (property != null)
        {
            property.Value = value!;
        }
        else
        {
#if HAVE_INOTIFY_PROPERTY_CHANGING
            OnPropertyChanging(propertyName);
#endif
            Add(propertyName, value);
            OnPropertyChanged(propertyName);
        }
    }
}
  • 여기서 Property메서드는 _properties컬렉션 에서 요청 된 엔터티를 가져 오려고합니다 .
    • private readonly JPropertyKeyedCollection _properties

참고:

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP 웹 서비스에서 JSON 요청 구문 분석

분류에서Dev

PHP에서 HTTP 웹 서비스 (JSON)의 응답 구문 분석

분류에서Dev

PHP에서 JSON 구문 분석 응답

분류에서Dev

JSON 응답에서 구문 분석

분류에서Dev

HTTP 응답에서 JSON 구문 분석

분류에서Dev

nodejs에서 json 응답 구문 분석

분류에서Dev

iOS : 기본 http 게시 요청 보내기 및 JSON 응답 구문 분석

분류에서Dev

다음 curl 요청으로 사용할 json 응답 구문 분석

분류에서Dev

Python으로 API 요청에서 JSON 구문 분석 시도

분류에서Dev

Ajax 게시 요청 후 PHP에서 JSON 구문 분석

분류에서Dev

Django에서 요청으로 JSON 구문 분석

분류에서Dev

curl API 요청에서 JSON 데이터 구문 분석

분류에서Dev

Google 웹 로그 분석에서 http 및 https 요청 구분

분류에서Dev

스칼라 디스패치 GET 요청, json에 대한 응답 구문 분석 실패

분류에서Dev

Ajax 요청에 대한 JSON 응답을 구문 분석하는 방법은 무엇입니까?

분류에서Dev

AWS API Gateway에 대한 Ajax 요청이 json 응답을 구문 분석 할 수 없음

분류에서Dev

HTTP 응답에서 Json 문자열 구문 분석

분류에서Dev

Objective-C에서 JSON 응답 문자열 구문 분석

분류에서Dev

웹 서비스에서 json 문자열 구문 분석

분류에서Dev

루프에서 Ajax JSON 응답 구문 분석

분류에서Dev

Facebook Graph 응답에서 Java의 JSON 데이터 구문 분석

분류에서Dev

Swift에서 Alamofire로 JSON 응답 구문 분석

분류에서Dev

Swift에서 Alamofire로 JSON 응답 구문 분석

분류에서Dev

Ajax 응답에서 JSON 객체 구문 분석

분류에서Dev

JAVA에서 JSON 응답을 구문 분석하는 방법

분류에서Dev

Android에서 여러 값으로 JSON 응답 구문 분석

분류에서Dev

Android의 응답에서 Json 특정 필드 구문 분석

분류에서Dev

YouTube API에서 JSON 응답 구문 분석

분류에서Dev

PHP에서 복잡한 JSON 응답 구문 분석

Related 관련 기사

  1. 1

    PHP 웹 서비스에서 JSON 요청 구문 분석

  2. 2

    PHP에서 HTTP 웹 서비스 (JSON)의 응답 구문 분석

  3. 3

    PHP에서 JSON 구문 분석 응답

  4. 4

    JSON 응답에서 구문 분석

  5. 5

    HTTP 응답에서 JSON 구문 분석

  6. 6

    nodejs에서 json 응답 구문 분석

  7. 7

    iOS : 기본 http 게시 요청 보내기 및 JSON 응답 구문 분석

  8. 8

    다음 curl 요청으로 사용할 json 응답 구문 분석

  9. 9

    Python으로 API 요청에서 JSON 구문 분석 시도

  10. 10

    Ajax 게시 요청 후 PHP에서 JSON 구문 분석

  11. 11

    Django에서 요청으로 JSON 구문 분석

  12. 12

    curl API 요청에서 JSON 데이터 구문 분석

  13. 13

    Google 웹 로그 분석에서 http 및 https 요청 구분

  14. 14

    스칼라 디스패치 GET 요청, json에 대한 응답 구문 분석 실패

  15. 15

    Ajax 요청에 대한 JSON 응답을 구문 분석하는 방법은 무엇입니까?

  16. 16

    AWS API Gateway에 대한 Ajax 요청이 json 응답을 구문 분석 할 수 없음

  17. 17

    HTTP 응답에서 Json 문자열 구문 분석

  18. 18

    Objective-C에서 JSON 응답 문자열 구문 분석

  19. 19

    웹 서비스에서 json 문자열 구문 분석

  20. 20

    루프에서 Ajax JSON 응답 구문 분석

  21. 21

    Facebook Graph 응답에서 Java의 JSON 데이터 구문 분석

  22. 22

    Swift에서 Alamofire로 JSON 응답 구문 분석

  23. 23

    Swift에서 Alamofire로 JSON 응답 구문 분석

  24. 24

    Ajax 응답에서 JSON 객체 구문 분석

  25. 25

    JAVA에서 JSON 응답을 구문 분석하는 방법

  26. 26

    Android에서 여러 값으로 JSON 응답 구문 분석

  27. 27

    Android의 응답에서 Json 특정 필드 구문 분석

  28. 28

    YouTube API에서 JSON 응답 구문 분석

  29. 29

    PHP에서 복잡한 JSON 응답 구문 분석

뜨겁다태그

보관