2017-05-17 21 views
0

我想我的XML数据转换成JSON如何将XML数据转换成JSON在c#

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public DataTable NameArray() 
{ 
    DataTable imageTable = new DataTable("gcm"); 
    // imageTable.Columns.Add("image_name", typeof(String)); 
    imageTable.Columns.Add("username", typeof(String)); 
    imageTable.Columns.Add("gcmkey", typeof(String)); 
    if (con.State.ToString() == "Closed") 
    { 
    con.Open(); 
    } 
    string query = "SELECT username,gcmkey from gcm"; 
    SqlCommand command = new SqlCommand(query, con); 
    SqlDataReader reader = command.ExecuteReader(); 
    if (reader.HasRows) 
    { 
    while (reader.Read()) 
    { 
     imageTable.Rows.Add(reader["username"],reader["gcmkey"]); 
    } 
    } 
    reader.Close(); 
    con.Close(); 
    return imageTable; 
} 

我用这条线,但它不适合我的话,请告诉我该怎么办转换成json

this.Context.Response.ContentType = "application/json; charset=utf-8"; 
this.Context.Response.Write(json.Serialize(new { PersonalProfile = reader })); 

输出: -

DataTable xmlns="http://tempuri.org/"> 
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet"> 
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="gcm" msdata:UseCurrentLocale="true"> 
<xs:complexType> 
<xs:choice minOccurs="0" maxOccurs="unbounded"> 
<xs:element name="gcm"> 
<xs:complexType> 
<xs:sequence> 
<xs:element name="username" type="xs:string" minOccurs="0"/> 
<xs:element name="gcmkey" type="xs:string" minOccurs="0"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 
</xs:choice> 
</xs:complexType> 
</xs:element> 
</xs:schema> 
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> 
    <DocumentElement xmlns=""> 
    <gcm diffgr:id="gcm1" msdata:rowOrder="0" diffgr:hasChanges="inserted"> 
    <username>nirav</username> 
    <gcmkey>12345</gcmkey> 
    </gcm> 
    </DocumentElement> 
    </diffgr:diffgram> 
+0

什么XML数据你真的想转换? –

+0

http://stackoverflow.com/q/17398019/2746150 –

+0

你的代码中的xml在哪? –

回答

0

https://stackoverflow.com/a/814027/5923666 有人一已经问过,但我会给你答案...

是的。使用含有这种精确的目的辅助方法的JsonConvert类:

// To convert an XML node contained in string xml into a JSON string 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xml); 
string jsonText = JsonConvert.SerializeXmlNode(doc); 

// To convert JSON text contained in string json into an XML node 
XmlDocument doc = JsonConvert.DeserializeXmlNode(json); 

文档浏览:Converting between JSON and XML with Json.NET

+0

不适合我 –

0

从的NuGet
包括Newtonsoft.Json和使用本

JsonConvert.SerializeObject(dt, Newtonsoft.Json.Formatting.Indented); 

输出将被像这样:

{“id”:“1”,“name”:“先生xyz“,”年龄“:”25“,”国家“:”印度“,”地址“:”H no- 4561“,”电话“:”1258961“},{”id“:”2“ “: “先生。 xyz“,”年龄“:”26“,”国家“:”印度“,”地址“:”H no- 4562“,”电话“:”1258962“},{”id“:”3“ “: “先生。 xyz“,”年龄“:”27“,”国家“:”印度“,”地址“:”H no- 4563“,”电话“:”1258963“},{”id“:”4“ “: “先生。 xyz“,”年龄“:”28“,”国家“:”印度“,”地址“:”H no- 4564“,”电话“:”1258964“},{”id“:”5“ “: “先生。 xyz“,”年龄“:”29“,”国家“:”印度“,”地址“:”H no- 4565“,”电话“:”1258965“}

让我知道它是否服务你的目的,但你觉得很难把它放在一起