1
아래 예제와 같은 JSON 객체를 수신합니다.데이터 계약을 매핑하여 JSON 객체의 올바른 필드를 참조하는 방법은 무엇입니까?
{
"이름 1": { "name1a": "value1a", "name1b": "value1b"},
"NAME2": { "name2a": "value2a", "name2b" 이 같은 (난 단지 그 순간에 하나의 데이터 필드에 접근 할 필요가 있기 때문에) "value2b"}
}
나는 그것을 위해 데이터 계약을 설정했습니다. 그들에게 필드 Name1b
를 (I 클래스의 캐릭터 설명을 얻고 있기 때문에, 어떤 작품) 내가 객체를 직렬화 한
[DataContract]
public class MyThingy
{
[DataMember(Name="name1b")]
public string Name1b { get; set; }
public MyThingy() { }
public MyThingy(String name1b)
{
Name1b = name1b;
}
}
, 나는 그것을 밖으로 인쇄 해 봅니다. 마지막 부분은 작동하지 않으며 나는
null
을 얻고 있습니다. 내 생각 엔 데이터 계약을 잘못 매핑 했음에 틀림 없지만이를 수정하는 방법을 알 수 없다.
MyThingy
클래스를 어떻게 선언해야합니까?
내 JSON 개체는 this post에 설명 된대로 가져옵니다. 여기 JavaScriptSerializer을 사용
당신이 그것을 더 내가로부터 받고 있어요 스트림을 변환하는 것이 좋습니다 건가요 사용할 수있는' HttpWebRequest'를'String' 객체로 변환 한 다음 ** ** 그것을 구문 분석합니까? 게다가 - 내가 만든 데이터 계약 방식을 사용하는 것이 완전히 취소 되었습니까? 나는 미래에, 아마도 하나의 필드를 얻는 것보다 더 진보 된 파서가 필요할 것이라고 생각합니다. 어떻게 생각해? –
또한 서버에 새 라이브러리를 설치할 수 없습니다. 나는 그것을 기본 .NET 4 (어쩌면 4.5)를 사용하여 해결해야합니다. –
@AndreasJohansson'JavaScriptSerializer' 또는'Json.Net'을 사용하면 비 직렬화 과정을보다 강력하게 제어 할 수 있습니다. 나는 그것들 중 하나를 선택할 것이다. (BTW : MVC 4는 기본적으로 Json.Net을 사용하며 그것은 내가 좋아하는 것이다.) –