zoukankan      html  css  js  c++  java
  • json.help

    using System;
    using System.Net;
    using System.Collections.Generic;
    using System.IO;
    using System.Xml;
    
    namespace CiCeng
    {
    public class CiCengjson
    {
    public object XmlToJson()
    {
    
    var xml = File.ReadAllText(@"D:\cnblogs.xml");//该xml为博客园随笔备份文件
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml);
    //获取rss节点下的内容
    var channelXml = doc.SelectSingleNode("rss").InnerXml;
    //进一步细化xml格式,内容仅为rss节点下的内容
    doc.LoadXml(channelXml);
    //将xml序列化成json,并且去掉根节点
    var json = JsonConvert.SerializeXmlNode(doc, Newtonsoft.Json.Formatting.None, true);
    }
    
    public object JsonToObject(object json)
    {
    var channel = JsonConvert.DeserializeObject<Channel>(json);
    return channel;
    }
    }
    
    
    public class Channel
    {
    public string title { get; set; }
    public string link { get; set; }
    public string description { get; set; }
    public string language { get; set; }
    public string lastBuildDate { get; set; }
    public string pubDate { get; set; }
    public string ttl { get; set; }
    public List<Channel_Item> item { get; set; }
    }
    
    public class Channel_Item
    {
    public string title { get; set; }
    public string link { get; set; }
    public string author { get; set; }
    public string pubDate { get; set; }
    public string guid { get; set; }
    public Item_Description description { get; set; }
    }
    
    public class Item_Description
    {
    //默认以变量名称作为json序列化的节点,由于该节点内容不符合变量定义规范,则显示指定即可
    [JsonProperty("#cdata-section")]
    public string content { get; set; }
    }
    }
    /*
    //http://www.cnblogs.com/chongsha/archive/2013/04/14/3019990.html
    自定义了一个类,继承JSONRESULT类
    
    并将上面的方法从写 ,用newton.json替换javascriptSerializer
    
    替换代码如下:
    public override void ExecuteResult(ControllerContext context)
    {
    if (this.Data != null)
    {
    IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
    timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
    response.Write(JsonConvert.SerializeObject(this.Data, Newtonsoft.Json.Formatting.Indented, timeFormat, x););
    }
    }重新定义一个Controller,命名为 JsonController,且设置为抽象类。
    
    然后重写方法:
    
    protected internal virtual JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior)
    {
    return new JsonResult { Data = data, ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior };
    }
    将 JsonResult改为我们继承JSONResult并重写了ExecuteResult方法的类,就大工告成了!
    //http://www.cnblogs.com/codealone/archive/2013/04/14/3020161.html
    以后只要JsonResult涉及到返回日期的,就可以让控制器继承我们自定义的这个类,由此解决日期问题。
    
    
    
    
    */
    

      

    作者:Bober Song
    出处:http://bober.cnblogs.com/
    CARE健康网: http://www.aicareyou.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础部分全套教程.
    Java进阶面试问题列表
    成为伟大程序员的 10 个要点
    一位资深程序员大牛给予Java初学者的学习路线建议
    2年Java开发工作经验面试总结
    有效处理Java异常三原则
    Java打飞机小游戏(附完整源码)
    原生ajax封装,包含post、method方式
    手机端布局,rem布局动态获取根字体大小
  • 原文地址:https://www.cnblogs.com/bober/p/3023891.html
Copyright © 2011-2022 走看看