2013-09-25 2 views
2

Im пытается просто десериализовать полезную нагрузку JSON с использованием класса JavaScriptSerializer и столкнуться с проблемой свойства класса im, чтобы эти предполагаемые десериализованные данные тоже были «null».Невозможно описать JSON

JSON:

{ 
    "XmlPayload": "<PaperLessTimeSheetActivation xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://host.adp.com\"><iSIClientID>99783971</iSIClientID><organizationId>FDGFGD</organizationId><statusDescription>Success</statusDescription></PaperLessTimeSheetActivation>" 
} 

Вот мой код:

var jsObject = new JavaScriptSerializer(); 

string holdData = xmlPayload.ToString(); 

//*****issue: JSON XmlPayLoadConvert property is 'null'. 
JSONConverted objectToConvert = jsObject.Deserialize<JSONConverted>(holdData); 

string stringXDoc = ConvertToXDoc(objectToConvert.XmlPayloadToConvert); 

Здесь класс десериализованное данные должны карту тоже:

public class JSONConverted 
{ 
    public string XmlPayloadToConvert 
    { 
     get; 
     set; 
    } 
} 

Может кто-нибудь сказать мне, где я собираюсь неправильно?

+1

Что содержит 'xmlPayload.ToString()'? – Sachin

+1

ну, какой вход был json? Также: должен ли я быть обеспокоен 'xmlPayload' vs json? –

+0

в качестве примера: если я использую вход: 'string xmlPayload =" {xmlPayloadToConvert: \ "awesomez \"} ";', то он работает * просто отлично * –

ответ

2

С редактированием ошибка становится очевидной: XmlPayload - это не то же самое, что и XmlPayloadToConvert.

Измените тип на:

public class JSONConverted 
{ 
    public string XmlPayload {get;set;} 
} 

, и он будет работать нормально. С некоторыми сериализаторами (например, Json.NET) вы также можете указать, как отображать имена:

[DataContract] 
public class JSONConverted 
{ 
    [DataMember(Name = "XmlPayload") ] 
    public string XmlPayloadToConvert {get;set;} 
} 
+0

Это была именно проблема благодаря Marc ...... Это научит меня, чтобы мои имена методов были одинаковыми при использовании генератора JSON для C#! Я приму свой ответ, когда смогу. – user1352057

Смежные вопросы