제 3 자로부터 일부 데이터 서버 측을 deserialize해야합니다 (선택의 폭이 아니라 접근성 측면에서 서버 측에서 수행됩니다).잘못된 JSON 프리미티브 :. C#의 JSON에서 역 직렬화하려고 시도
{
"name": "TPO",
"columns": [
"ogc_fid",
"orderref",
"status",
"entityref",
"treetype",
"comments",
"orderyear",
"label",
"dist"
],
"data": [
[
360,
"07/1970/WR ",
"Tree ",
"T6 ",
"Chestnut",
"Position checked against Scanned Order 13/11/2008",
1970,
"479055.705,204698.514",
33
],
[
361,
"07/1970/WR ",
"Tree ",
"T7 ",
"May",
"Position checked against Scanned Order 13/11/2008",
1970,
"479061.747,204685.09",
35
]
]
}
내가 객체 TPOData로 직렬화하기 위해 노력하고있어 :
을var data = new JavaScriptSerializer().Deserialize<TPOData>(responseFromServer);
responseFromServer은 다음과 같다 : 그러나, 나는 내가 다음 코드 줄을 호출하고
얻을
public class TPOData
{
public string name;
public List<string> columns;
public List<List<object>> data;
}
속성 데이터가 달라 지도록 시도했습니다. 위의 외에도 나는 List<object>
, List<object[]>
, object[][]
, object[]
, object
을 시도했습니다. 나는 심지어 List<List<string>>
을 시도했는데 int
값을 변환하기를 기대했다. 아무도 도움이되지 못했습니다. 문제는 int 배열과 문자열 값이 혼합 된 객체 배열의 두 번째 수준에있는 데이터와 관련이 있다고 생각합니다. 2 단계가 전적으로 문자열이기 때문에 문제없이 List<List<string>>
을 사용할 수있는 비슷한 작업을 수행했습니다.
도움을 주시면 감사하겠습니다.
이 문제가 JsonScriptSerializer 클래스에서 오는 것으로 보인다. JSON 변환은 어떤 문제없이 Newtonsoft.Json.JsonConvert를 사용할 때 클래스의 객체를 deserializng합니다. –