zoukankan      html  css  js  c++  java
  • .net 中的 json 处理

    今天一个非开发口的同事在问.net里的Json是怎么处理的。简单做了个说明:

    Json 在 .net 里就是字符串,但有三方类库(如:Newtonsoft.Json也称Json.net)用于处理JSON。
    【更新】在 .net core 中对 json 有原生支持,参见命名控件 System.Text.Json(System.Text.Json.dll)

    一般是两种方式来用:

    1、固定结构:json与对象实例互转。序列化/反序列化,主要是用于对象的传输和存储。

    public class Person
    {
        public int Age { get; set; }
        public string Name { get; set; }
        public string Sex { get; set; }
    }
    
    
    string jsonText = "[{"age":"18","name":"王梅梅","sex":"女"},{"age":"20","name":"李雷","sex":"男"}]";
    Newtonsoft.Json.JsonConvert.DeserializeObject<Person>(jsonText)
    [
    {
    	"age": "18",
    	"name": "王梅梅",
    	"sex": "女"
    },
    {
    	"age": "20",
    	"name": "李雷",
    	"sex": "男"
    }
    ]



    2、非固定结构:通过JToken实现对 json的构造、解析、查找(JPAth)、节点的增/删/改。

    JToken的层次结构是这样的:
    
    
    JToken          -抽象基类
      JContainer     - 能够包含其它JToken的JToken抽象基类 
        JArray     - 表示一个JSON数组(包含一个有序的List<JToken>)
        JObeject      - 表示一个JSON对象(包含一个IEnumerable<JProperty>)
        JProperty     - 表示一个JSON属性(在JObject中是一个name/JToken键值对)
      JValue       - 表示一个原生JSON值(string,number,boolean,null)

    简单理解,JToken对应json中的一个节点/某一层的节点。

    参考:
    https://www.cnblogs.com/Lau7/p/8036872.html
    https://stackoverflow.com/questions/38558844/jcontainer-jobject-jtoken-and-linq-confusion

  • 相关阅读:
    Github国内mirror加速
    通过node-inspector或VSCode调试服务器上代码
    node nvm 常见命令
    HBuilderX 修改默认的终端
    LLVM 工具使用
    LLVM 获取Value Type
    LLVM Constant Value to c++ value
    Bison 命名位置
    llvm block
    vscode use cl.exe build C/C++
  • 原文地址:https://www.cnblogs.com/fj365/p/13295440.html
Copyright © 2011-2022 走看看