У меня проблема с кодом JSON для XML. Он не присваивает значения объекту, и я не могу понять, почему. Пожалуйста, дайте мне знать, что я делаю неправильно.JSON Convert Deserialize Object
Мой C# код:
using Newtonsoft.Json;
using System.Xml;
namespace JSONTest
{
public class Program
{
static void Main(string[] args)
{
string fileName = "C:\\Code\\JSONTest\\data\\response.xml";
// Convert XML Data into JSON Data
XmlDocument xmlFile = new XmlDocument();
xmlFile.Load(fileName);
string jsonData = JsonConvert.SerializeXmlNode(xmlFile);
// Convert JSON Data into Object
RootObject root = JsonConvert.DeserializeObject<RootObject>(jsonData);
var data = root.RESPONSE_GROUP;
Console.ReadLine();
}
}
public class RootObject
{
public RESPONSEGROUP RESPONSE_GROUP { get; set; }
}
public class RESPONSEGROUP
{
public string MISMOVersionID { get; set; }
public object RESPONDING_PARTY { get; set; }
public object RESPOND_TO_PARTY { get; set; }
public RESPONSE RESPONSE { get; set; }
}
public class RESPONSE
{
public string ResponseDateTime { get; set; }
public KEY KEY { get; set; }
public STATUS STATUS { get; set; }
}
public class KEY
{
public string _Name { get; set; }
public string _Value { get; set; }
}
public class STATUS
{
public string _Code { get; set; }
public string _Condition { get; set; }
public string _Description { get; set; }
public string _Name { get; set; }
}
}
XML
<RESPONSE_GROUP MISMOVersionID="2.4">
<RESPONDING_PARTY/>
<RESPOND_TO_PARTY/>
<RESPONSE ResponseDateTime="2015-02-19T10:32:11-06:00">
<KEY _Name="LOSClientID" _Value="3000799866"/>
<STATUS _Code="S0010" _Condition="Success" _Description="TEST DESC" _Name="Complete"/>
</RESPONSE>
</RESPONSE_GROUP>
Мой "JSONData" строка:
{"RESPONSE_GROUP":{"@MISMOVersionID":"2.4","RESPONDING_PARTY":null,"RESPOND_TO_PARTY":null,"RESPONSE":{"@ResponseDateTime":"2015-02-19T10:32:11-06:00","KEY":{"@_Name":"LOSClientID","@_Value":"3000799866"},"STATUS":{"@_Code":"S0010","@_Condition":"Success","@_Description":"THIS IS THE DESCRIPTION.","@_Name":"Complete"}}}}
Значение: root.RESPONSE_GROUP.MISMOVersionID
является NULL
, а также любые другие ценности, которые должен был быть заселен. Я знаю, что здесь что-то не так, но я не могу понять, что это такое.
Пожалуйста, помогите! Заранее спасибо.
Поскольку существует два уровня конверсии здесь, вы, вероятно, также придется поставить XML для нас, чтобы помочь. –
Ваш JSON имеет свойство, называемое '@ MISMOVersionID'. Ваше фактическое свойство - 'MISMOVersionID'. (Ditto для ResponseDateTime, _Name и т. Д.) Я не уверен, что я бы * ожидал, что это сработает ... –
@CharlieKilian - Данные JSON, которые я предоставил, равны 'jsonData'. Однако я предоставил XML, так как вы его запросили. – Turp