역 직렬화 JSON 데이터

성난

json 데이터를 역 직렬화하는 데 문제가 있습니다. 다른 json 데이터와 함께 성공적으로 사용하고있는이 코드가 있습니다.

        string url = string.Format("http://farmsense-prod.apigee.net/v1/moonphases/?d=1494981184");
        var http = new HttpClient();
        var response = await http.GetAsync(url);
        var result = await response.Content.ReadAsStringAsync();
        var serializer = new DataContractJsonSerializer(typeof(Lunar_data.RootObject));
        var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
        var data_moon = (Lunar_data.RootObject)serializer.ReadObject(ms);
        return data_moon;

이 코드는 null 값만 반환합니다!

다음은 https://jsonutils.com /으로 생성 된 클래스입니다.

public class Lunar_data
{

    public class RootObject
    {

        [JsonProperty("Error")]
        public int Error { get; set; }

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

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

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

        [JsonProperty("Index")]
        public int Index { get; set; }

        [JsonProperty("Age")]
        public double Age { get; set; }

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

        [JsonProperty("Distance")]
        public double Distance { get; set; }

        [JsonProperty("Illumination")]
        public double Illumination { get; set; }

        [JsonProperty("AngularDiameter")]
        public double AngularDiameter { get; set; }

        [JsonProperty("DistanceToSun")]
        public double DistanceToSun { get; set; }

        [JsonProperty("SunAngularDiameter")]
        public double SunAngularDiameter { get; set; }
    }

}

그리고 이것은 정말 간단하지만 올바르게 얻을 수없는 내 json 데이터입니다.

[{"Error":0,"ErrorMsg":"success","TargetDate":"1350526582","Moon":["Hunter's\/Harvest Moon"],"Index":2,"Age":2.9555953469264,"Phase":"Waxing Crescent","Distance":363325.22,"Illumination":0.1,"AngularDiameter":0.54815395361483,"DistanceToSun":149016616.79983,"SunAngularDiameter":0.53520976935835}]

마지막으로 몇 가지 검색 후 Newtonsoft.Json을 사용하는 사람들을 찾았 지만 json 데이터의 따옴표로 인해 사용할 수 없었습니다.

NP3

문제는 json이 배열이고 RootObject 인스턴스로 역 직렬화된다는 것입니다. 나는 시도했다

const string jsondata = "[{\"Error\":0,\"ErrorMsg\":\"success\",\"TargetDate\":\"1350526582\",\"Moon\":[\"Hunter's\\/Harvest Moon\"],\"Index\":2,\"Age\":2.9555953469264,\"Phase\":\"Waxing Crescent\",\"Distance\":363325.22,\"Illumination\":0.1,\"AngularDiameter\":0.54815395361483,\"DistanceToSun\":149016616.79983,\"SunAngularDiameter\":0.53520976935835}]";

Lunar_data.RootObject[] res = JsonConvert.DeserializeObject<Lunar_data.RootObject[]>(jsondata);

그리고 그것은 잘 작동했습니다. json이 내 코드의 문자열 const에 있기 때문에 따옴표를 이스케이프해야했지만 그럴 필요는 없습니다 (http 호출에서 얻은 응답이 올바른 형식이라고 가정).

또는 코드에서

Lunar_data.RootObject 

Lunar_data.RootObject[]

그래서 당신은 얻을

var serializer = new DataContractJsonSerializer(typeof(Lunar_data.RootObject[]));
var ms = new MemoryStream(Encoding.UTF8.GetBytes(result));
var data_moon = (Lunar_data.RootObject[])serializer.ReadObject(ms);

그리고 그것은 작동합니다. 하지만 저는 Newtonsoft를 사용할 것입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 데이터 역 직렬화

분류에서Dev

JSON 데이터 역 직렬화 C #

분류에서Dev

C # JSON 데이터 역 직렬화

분류에서Dev

JSON.NET으로 JSON 데이터 역 직렬화

분류에서Dev

Gson이 JSON 데이터를 역 직렬화하지 않음

분류에서Dev

Android에서 JSON 데이터 역 직렬화

분류에서Dev

한 클래스에서 다른 JSON 데이터 역 직렬화

분류에서Dev

JSON.NET URL에서 중첩 된 데이터 역 직렬화

분류에서Dev

C #에서 3taps JSON 데이터 역 직렬화

분류에서Dev

다양한 데이터 구조로 JSON 역 직렬화

분류에서Dev

RestResponse를 JSON 데이터로 역 직렬화

분류에서Dev

MVC에서 JSON 데이터를 역 직렬화하는 방법

분류에서Dev

탄력적 검색 JSON 데이터 역 직렬화

분류에서Dev

JSON 역 직렬화

분류에서Dev

iOS 라이브러리 JSON 직렬화 / 역 직렬화

분류에서Dev

이상한 JSON 역 직렬화

분류에서Dev

JSON을 C # 개체로 역 직렬화-역 직렬화되는 데이터 없음

분류에서Dev

JSON 데이터를 역 직렬화하는 데 도움이 필요합니다.

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

JSON 역 직렬화 및 MySQL 데이터베이스에 개체 저장

분류에서Dev

중첩 된 JSON API 데이터를 CSV로 역 직렬화 및 내보내기

분류에서Dev

역 직렬화 된 JSON 데이터를 표시하지 않는 목록 상자

분류에서Dev

역 직렬화하지 않고 Json 데이터에서 속성 제외

분류에서Dev

Json.NET 루트 및 하위 스키마 데이터 역 직렬화

분류에서Dev

JSON.NET에서 인터페이스 개체 역 직렬화

분류에서Dev

RestSharp로 JSON 역 직렬화

분류에서Dev

JSON C # 역 직렬화

분류에서Dev

JSON 개체 역 직렬화

Related 관련 기사

뜨겁다태그

보관