Json 各格式转换

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();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值