2017-05-17 50 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「}

讓我知道它是否服務你的目的,但你覺得很難把它放在一起