대량의 주문 데이터를 문자열 배열로 반환하는 API를 사용하고 있습니다.C# 속성 이름이없는 JSON 배열을 객체로 구문 분석
"orders": [
//[ price, size, order_id ]
[ "295.96","0.05088265","3b0f1225-7f84-490b-a29f-0faef9de823a" ],
...
]
나는 다음과 같은 형식의 객체에 구문 분석 Json.Net를 사용해야합니다 :
public class Order
{
public decimal price { get; set; }
public decimal size { get; set; }
public Guid order_id { get; set; }
}
내가 어떻게 이것을 달성 할 수 있습니까? 어떻게 문자열 형식의 배열 orders
단일 끝나는 그래서 개체를 deserialize Json.NET 사용하는 방법을 알고 있지만 건너 뛸 수있는 방법이 있습니다 및 대신 그냥 개체 인스턴스에 대신 직접 매핑 할? 나는 그것을 직렬화하는 방법을 발견 한
Expecting object or array, not string.[Code 1, Structure 1]
그러나 :
당신이 당신의 클래스의 속성에 데이터를 매핑 할 수있는 속성이 없기 때문에 자신 만의 변환기를 작성해야 할 수도 있습니다. 순서가 항상 동일하다는 것을 안다면, 각 값을 직접 할당 할 수 있습니다. 자세한 내용은 아래의 답변을 참조하십시오. https://stackoverflow.com/a/8031283/3492988 – mdon88
*로 무엇을 의미하는지 확신 할 수 없습니다. 대신 객체 인스턴스에 직접 매핑하십시오. * - that은 .net json이 수행하는 것과 정확히 같습니다. 'var orders = JsonConvert.Deserialize> (jsonString)'은 당신을 위해 생성 된 Order "인스턴스"콜렉션을 리턴합니다. –
Jaya
[C# JSON.NET - 비정상적인 데이터 구조를 사용하는 응답의 비 직렬화] (https://stackoverflow.com/q/39461518/3744182)의'ObjectToArrayConverter'을 사용하여 해당 JSON을 비 직렬화 할 수 있습니다. 사실,이 질문은 그것과 중복 될 수 있습니다. 동의하다? –
dbc