2013-04-03 3 views
1

Apolgies : 저는 이것이 Silverlight 솔루션을위한 것임을 잊지 않습니다.혼합 된 내용의 JSON 배열을 비 직렬화

{ 
    "710 HUVAL ST (N), LAFAYETTE LA":{ 
     "confidence":0.844, 
     "fips_county":"22055", 
     "country_code":"US", 
     "country_code3":"USA", 
     "latitude":30.234912, 
     "street_address":"710 Huval St", 
     "country_name":"United States", 
     "longitude":-92.034597, 
     "street_number":"710", 
     "region":"LA", 
     "street_name":"Huval St", 
     "locality":"Lafayette" 
    }, 
    "200 ASHLAND PARK, LAFAYETTE LA":{ 
     "confidence":0.844, 
     "fips_county":"22055", 
     "country_code":"US", 
     "country_code3":"USA", 
     "latitude":30.159882, 
     "street_address":"200 Ashland Park Dr", 
     "country_name":"United States", 
     "longitude":-92.035342, 
     "street_number":"200", 
     "region":"LA", 
     "street_name":"Ashland Park Dr", 
     "locality":"Lafayette" 
    } 
} 

가 나는 .NET 클래스로 직렬화하기 위해 노력하고있어 :

JSON 문자열이 같은 서비스에서 반환됩니다. 그러나 배열의 각 객체 (그리고이 객체는 매우 클 수 있습니다. 위 예제에서 두 개를 보여주고 있습니다)가 .NET의 JSON 디시리얼라이저와 다른 객체 유형으로 보이기 때문에 문제가 발생합니다.

클래스를 생성하기 위해 JSON에서 C#과 같은 도구를 사용하면 각 배열 객체에 대한 클래스가 만들어집니다. 결과가 응답에서 응답까지 다양 할 경우 이상적이지 않습니다.

.NET에서 역 직렬화 할 수 있도록 생성하는 적절한 클래스를 알아낼 수는 없습니다. JSON 서비스에 대한 제어권이 없으며 막혔습니다.

+0

가능한 복제 http://stackoverflow.com/questions/6671972/deserializing-json-to-anonymous-object-in-c-sharp 아이디어는 구체적인 클래스로 데이터를 deserialize하는 것이 아니라 익명의 객체 또는 비슷한 프리미티브. – David

+0

사과드립니다. 나는 Silverlight에 있다는 사실을 완전히 배제했다. – lcrumb

+0

아마 이것은 당신을 위해 작동 할 것입니다 - http://www.robertsindall.co.uk/blog/how-to-convert-json-to-expandoobject/ 마지막으로 C#으로 일하면서, 나는 일반적으로 클래스 리플렉션에 의존하는 것을 피했습니다 JSON (de) 직렬화가 벗겨지는 듯 보였습니다. – David

답변

0

JSON.NET package from nuget을 사용해보세요. Newtonsoft.Json.Linq.JObject 클래스는 System.Xml.Linq.XElement과 비슷한 인터페이스를 제공하므로 JSON을 단일 구체 객체로 직렬화 해제하지 않고도 구문 분석 할 수 있습니다.