1、什么是json
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
- JSON 具有自我描述性,更易理解
2、json的语法
2.1、json的语法规则
- 数据在键值对中
- 数据由逗号分隔
- 大括号保存对象
- 中括号保存数组,数组中可以包含多个对象
- 使用斜杠\来转义字符
2.2、JSON 的两种结构:
1、对象:大括号 {} 保存的对象是一个无序的键/值对集合。一个对象以左括号 { 开始, 右括号 } 结束。每个"键"后跟一个冒号 :,键/值对使用逗号 , 分隔。
2、数组:中括号 [] 保存的数组是值(value)的有序集合。一个数组以左中括号 [ 开始, 右中括号 ] 结束,值之间使用逗号 , 分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array),它们是可以嵌套。
2.3、JSON 名称/值对
key : value
"name" : "张三"
2.4、JSON 值
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null
3、解析JSON数据
1、通过c#进行解析
首先,创建JSON数组,其中有三个对象
[
{"id":1,"name":"玄玉手","damage":"200"},
{"id":2,"name":"蓝银领域","damage":"300"},
{"id":3,"name":"佛怒唐莲","damage":"10000"}
]
创建对应的类
class Skill
{
public int id { get; set; }
public String name { get; set; }
public String damage { get; set; }
public void toString()
{
Console.WriteLine("id=" + id + ",name=" + name + ",damage=" + damage);
}
}
测试
class Program
{
static void Main(string[] args)
{
//反序列化
Skill[] skillArray = JsonConvert.DeserializeObject<Skill[]>(File.ReadAllText("Skills.txt"));
foreach(Skill s in skillArray)
{
s.toString();
}
}
}
2、通过java进行解析
普通json格式
如:{“name”:“张三”,“id”:1}
public void getObject(String json){
JSONObject jsonObject = JSON.parseObject(json);
String id = jsonObject.getString("id");
String s = jsonObject.getString("name");
System.out.println(id);
System.out.println(s);
}
json中包含对象
如:{“user”:{“id”:2,“name”:“张三”}}
public void getObject(String json){
JSONObject jsonObject = JSON.parseObject(json);
JSONObject user = jsonObject.getJSONObject("user");
Integer id = user.getInteger("id");
String name = user.getString("name");
System.out.println(id);
System.out.println(name);
}
更多工具解析与学习——》json官网