Xml转Json
传入参数1:xml数据;参数2:截取xml数据中某个节点
/// <summary>
/// xml转json
/// </summary>
/// <param name="xmlstr"></param>
/// <param name="nodename"></param>
/// <returns></returns>
public static string XMLtoJson(string xmlstr, string nodename)
{
string result = null;
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(xmlstr);
XmlNode node = xmldoc.SelectSingleNode(nodename);
result = Newtonsoft.Json.JsonConvert.SerializeXmlNode(node);
return result;
}
Json转对象
//从表中获取到json数据--(数据库保存的json数据)
string ohmInfoJson = dr["InfoJson"].ToString();
//将json转JObject
Newtonsoft.Json.Linq.JObject obj = Newtonsoft.Json.JsonConvert.DeserializeObject(ohmInfoJson) as Newtonsoft.Json.Linq.JObject;
//json转对象。节点截取,转成对应model字段
model csdel = Newtonsoft.Json.JsonConvert.DeserializeObject<model>(obj["节点"].ToString());
DataSet转Josn
public string DataSetToJSON(DataSet ds)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
if (ds == null || ds.Tables.Count <= 0) { return ""; };
using (JsonWriter jw = new JsonTextWriter(sw))
{
JsonSerializer ser = new JsonSerializer();
//输出totalCount
jw.WriteStartObject();
jw.WritePropertyName("totalCount");
ser.Serialize(jw, ds.Tables.Count.ToString()); // 输出Table的数量
for (int i = 0; i < ds.Tables.Count; i++)
{
//输出DataTable 中的数据
jw.WritePropertyName("dataList"+i);
jw.WriteStartArray();
foreach (DataRow dr in ds.Tables[i].Rows)
{
jw.WriteStartObject();
foreach (DataColumn dc in ds.Tables[i].Columns)
{
jw.WritePropertyName(dc.ColumnName);
ser.Serialize(jw, dr[dc].ToString());
}
jw.WriteEndObject();
}
jw.WriteEndArray();
}
jw.WriteEndObject();
sw.Close();
jw.Close();
}
return sb.ToString();
}