c# json操作

一、json配置

要解析json文件,应安装litJson

二、json简介(摘自百度百科)

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#Java、JavaScript、PerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

JSON 语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

  • 数据在键值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:


1

"firstName":"John"

这很容易理解,等价于这条 JavaScript 语句:


1

firstName="John"

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

基础结构编辑

JSON[1]  结构有两种结构[2]

json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构

1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

经过对象、数组2种结构就可以组合成复杂的数据结构了。

三、手写一个简单的json文件

[
{"id":2,"name":"天下无双","demage":123},
{"id":3,"name":"绝对零度","demage":200},
{"id":4,"name":"冰封万里","demage":325}
]

四、解析json文件

创建一个对应的Skill类

class Skill
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Demage { get; set; }

        public override string ToString()
        {
            return "Id:" + Id + " Name:" + Name + " Demage:" + Demage;
        }
    }

解析文件

class Program
    {
        static void Main(string[] args)
        {
            List<Skill> skillList = new List<Skill>();
            //右键引用,选择管理Nuget程序包,搜索litjson安装
            JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json.txt"));
            foreach (JsonData temp in jsonData)
            {
                Skill skill = new Skill();
                JsonData idValue = temp["id"];
                JsonData nameValue = temp["name"];
                JsonData demageValue = temp["demage"];
                int id = int.Parse(idValue.ToString());
                string name = nameValue.ToString();
                int demage = int.Parse(demageValue.ToString());
                skill.Id = id;
                skill.Name = name;
                skill.Demage = demage;
                skillList.Add(skill);
            }

            foreach (var s in skillList)
            {
                Console.WriteLine(s);
            }
        }
    }

五、使用泛型解析Json

注意:Skill类中的属性名应该和json文件中的键名相同

class Skill
    {
        public int id { get; set; }
        public string name { get; set; }
        public int demage { get; set; }

        public override string ToString()
        {
            return "Id:" + id + " Name:" + name + " Demage:" + demage;
        }
    }
//使用泛型解析
            Skill[] skillList = JsonMapper.ToObject<Skill[]>(File.ReadAllText("json.txt"));
            foreach (var item in skillList)
            {
                Console.WriteLine(item);
            }

是不是用泛型简单很多呢?

时间: 2024-12-16 10:40:23

c# json操作的相关文章

使用Json.Net解决MVC中各种json操作

最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能.NewtonSoft.json也就是Json.Net性能虽然不是最好的,但是是比较靠前的,其功能是最强大的,包含各种json操作模式.现在来看看mvc中的替换1, Controller.Json方法这个方法最容易出现循环引用,比如EF查出一个一对多集合想序列化,结果a引用了子表b,b中还引用了a,导

公共的Json操作类

using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Reflection; using System.Data.Common; using System.Collections; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; usi

ASP.NET 里的 JSON操作

最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法.... 一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法 1. 使用JavaScriptSerializer,位于命名空间System.Web.Script.Serialization,使用如下: 序列化为JSON字符串: C#代码 User user = new User {Name = "jquery", Age = 20};JavaScriptSeria

PHP JSON 操作总结

原文:PHP JSON 操作总结 由于JSON可以在很多种程序语言中使用,所以我们可以用来做小型数据中转,如:PHP输出JSON字符串供JavaScript使用等.在PHP中可以使用 json_decode() 由一串规范的字符串解析出 JSON对象,使用 json_encode() 由JSON 对象生成一串规范的字符串. 例:<?php $json = '{"a":1, "b":2, "c":3, "d":4, &qu

json 操作

share_id += 1; //处理json数据 var img_json = []; if ($("#_hidImgList").val() != "") img_json = eval($("#_hidImgList").val()); var returndata = data.result.Data; returndata['share_id'] = share_id; img_json.push(returndata); $(&quo

Json操作(DynamicJson)

Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). 来自百度百科的介绍 Json的优点 数据格式比较简单,易于读写,格式都是压缩

Newtonsoft.Json 操作 JSON 字符串

Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET即Newtonsoft.Json.大多数人都会选择性能以及通用性较好Json.NET,这个不是微软的类库,但是一个开源的世界级的Json操作类库,从下面的性能对比就可以看到它的其中之一的性能优点. 齐全的API介绍,使用方式简单

ASP.NET2.0 Newtonsoft.Json 操作类分享

JSON 是现在比较流行的数据交互格式,NET3.0+有自带类处理JSON,2.0的话需要借助Newtonsoft.Json来完成,不然自己写的话,很麻烦. 网上搜索下载 Newtonsoft.Json.Net20.dll (没有加群找群主拿),添加引用到项目当中. /*添加引用*/ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Converters; /* 序列化,返回JSON格式的字符串 */

分享基于.NET动态编译&amp;Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧

原文:分享基于.NET动态编译&Newtonsoft.Json封装实现JSON转换器(JsonConverter)原理及JSON操作技巧 看文章标题就知道,本文的主题就是关于JSON,JSON转换器(JsonConverter)具有将C#定义的类源代码直接转换成对应的JSON字符串,以及将JSON字符串转换成对应的C#定义的类源代码,而JSON操作技巧则说明如何通过JPath来快速的定位JSON的属性节点从而达到灵活读写JSON目的. 一.JSON转换器(JsonConverter)使用及原理介

JSON操作

JSON: JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析.JSON跟XML一样是一种是数据格式. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写