Json格式讲解


文章目录

  • Json格式讲解
  • 前言
  • 一、Json是什么?
  • 二、Json的主要符号以及语法规则
    • 1.引入库
    • 2.Json名称/值对
    • 3.JSON 值
    • 4.JSON 数字
    • 5.JSON 对象
    • 6.JSON 数组
      • 数组里边的参数类型一定要一致,否则该Json格式就是错误的。
      • 在Json中也支持数组嵌套的
    • 7.JSON 布尔值
    • 8.JSON null
  • 总结

前言

本篇文章讲解一下Json的格式以及常见的组合方法格式,比较适合小白阅读
Json格式转换网址

转载请标明出处!!!!!!


提示:以下是本篇文章正文内容,下面案例可供参考

一、Json是什么?

直白来讲Json就是一种轻量级的文本数据交换格式,如果你是小白你可千万不要小看他的用途,他相比较XML来讲可读性更强一些,其中他的数据处理功能也是非常强大的。

二、Json的主要符号以及语法规则

1.引入库

数据在名称/值对中:key:value
数据由逗号分隔:,(一定要是英文的)
大括号 {} 保存对象(大括号({})在各类语言中就相当于一个类的存在)
中括号 [] 保存数组,数组可以包含多个对象(中括号([ ])这在语言中就代表一个数组,数组里边的类型可以自己定义)

2.Json名称/值对

JSON 数据的书写格式是:

key : value

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

“name” : “樱花粉的小铁锹”

3.JSON 值

JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null

4.JSON 数字

JSON 数字可以是整型或者浮点型:
{ “age”:30 }
数字的话就不用带" "双引号了,带上双引号就表示为一个字符串

5.JSON 对象

JSON 对象在大括号 {} 中书写:

{key1 : value1, key2 : value2, … keyN : valueN }

上边给大家讲解了,Json中的{ }就相当于一个类

在上边我在最外边写了一个大括号{ }这个大括号就相当于C#中的Root 类,而里边的的大括号前边的"item"则表示给该类定义了名称该结构就相当于旁边显示出来的Class Item,而此时的item在最外层的大括号中就相当于在Root类中定义了一个Item类型的属性。

6.JSON 数组

[
{ key1 : value1-1 , key2:value1-2 },
{ key1 : value2-1 , key2:value2-2 },
{ key1 : value3-1 , key2:value3-2 },

{ key1 : valueN-1 , key2:valueN-2 },
]
用在线转换格式工具转换格式如下图

{
“item”:[
{ “name” : “小铁锹” , “age”:18},
{ “name” : “小阿giao” , “age”:88}

]

}
该json格式转换成C#如下所示

public class ItemItem
{/// <summary>/// 小铁锹/// </summary>public string name { get; set; }/// <summary>/// /// </summary>public int age { get; set; }
}public class Root
{/// <summary>/// /// </summary>public List <ItemItem > item { get; set; }
}

最外层的大括号{ }还是等价于Class Root,而我们在这里讲到的中括号[ ]相当于一个类,这里给我们转换过后的数据是变成了一个泛型的的集合item,而他的变量则是我们的类ItemItem,而我们的ItemItem类里边则有我们的name属性,我们的age属性同时我们的name后边跟的值是string类型的,在Json里用"“双引号给引用起来,而我们age后边的数值则没有加双引号”",大家还是要把Json格式结合到我们的语言中去理解,这样大家才能更清晰的了解我们的数据在json中是怎么存储与表达的。

数组里边的参数类型一定要一致,否则该Json格式就是错误的。

Json中的数组跟我们语言中的数组是一样的,数组中的类型只要确定了就要按照这个格式来。我以下的写法就是错误的写法

我的item数组第一个穿的值是一个对象{ }也就是一个类,而我第二个值传的是一个字符串,此时就会报错。此时把那个字符串删了就可以,而我们再传个对象它就不会报错,但是对象中的格式要与我们第一个对象的格式保持一致,否则也会报错。看以下展示

此时下边的对象相对于上边的来说少了一个数组,这个格式就是明显的不对,此时就会报错,把数组加上就可以了。

在Json中也支持数组嵌套的


我在这里嵌套了三层数组,大家可以仔细观察一下,嵌套数组最外层的数组要有数组名,但是里边的数组就不能添加数组名。

7.JSON 布尔值

谈到布尔值无非就true or false那布尔值在Json中是怎么传递的?大家可以思考一下是要加双引号还是跟数值一样的方式?
答案揭晓

{ “flag”:true }

Json中的布尔值跟数值一样的赋值方式

8.JSON null

JSON 可以设置 null 值:

{ “runoob”:null }
null的使用跟布尔值,数值的用法一致。

总结

今天主要跟大家介绍了Json的语法格式,虽然这只有简单的几种格式,但是他们的搭配使用可是花样百出,所以大家一定要好好打好自己的基础,这样才能更好的为以后做铺垫。

Json格式与解析(一)相关推荐

  1. 关于json格式字符串解析并用mybatis存入数据库

    园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...

  2. golang常用库之mapstructure包 | 多json格式情况解析、GO json 如何转化为 map 和 struct、Go语言结构体标签(Struct Tag)

    文章目录 golang常用库之mitchellh/mapstructure包 | go将map转换为struct 一.msgpack 二.背景 三.多json格式情况解析使用思路 四.mapstruc ...

  3. [IOS开发教程] IOS中用NSJSONSerialization来实现对JSON格式的解析

    IOS中对JSON格式的解析通常可以采用NSJSONSerialization来实现. 如,我们可以用个简答的HTTP请求的方式获取JSON数据,(以下都是在playground中写的) var ur ...

  4. hive中json格式字段解析及map使用

    json 如果hive表中有扩展字段,那么扩展字段格式最常见的就是json格式,所以如何解析json字符串相对繁琐(虽然没啥技术

  5. Json格式数据解析

    一.简介 XML这种数据格式.XML的特点是功能全面,但标签繁琐,格式复杂.在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构. JSON是JavaScript Object Nota ...

  6. Json格式的解析,JsonObject、JSONArray

    1.将json字符串转成json格式 com.alibaba.fastjson.JSONObject object = JSONArray.parseObject(newJson); 2.根据属性获取 ...

  7. json格式的解析,list如何转换json格式

    list转换成json,然后在js里获取: 基本格式: controller里: JSONObject json = new JSONObject(); json.put("data&quo ...

  8. JSON格式字符串解析,转换为JSONObject

    有时候收到一个String 类型的json字符串,需要获取指定key的value值,可以先将String转换为json对象,然后通过get方法获取指定key的value String str = &q ...

  9. oracle如何解析json,oracle 解析json格式

    1. CREATE OR REPLACE PACKAGE PKG_ANALYSE_COMMON IS -- AUTHOR : YZCHEN -- CREATED : 2013/11/26 14:12: ...

最新文章

  1. USB HID report descriptor
  2. adb查看手机cpu使用率_记录一下Unity打包Android在骁龙cpu上概率性卡死的问题
  3. Python 的 eval() 与 exec()区别
  4. Python学习笔记011_模块_标准库_第三方库的安装
  5. ECMAScript、JavaScript与Nodejs的区别
  6. 无需再忙了:Lambda-S3缩略图,由SLAppForge Sigma钉牢!
  7. 打印发现function toUpperCase() { [native code] }
  8. 用冒泡法对10个整数从小到大排序
  9. 网站高并发优化性能调优总结
  10. 日文邮件变成乱码解决方案
  11. 华为云发布“华为鲲鹏”培训认证体系,助力开发者“化鲲为鹏”
  12. 如何快速入行云计算?云计算的学习要点有哪些?
  13. SylixOS网络协议栈---Lwip协议栈之ARP表
  14. ubuntu18.10 编译安装caffe gpu版本
  15. 百度翻译API的调用
  16. CentOS防火墙开启masquerade后即开启包转发功能
  17. 矩阵对角化,SVD分解
  18. Java程序员转行可以做什么?程序员
  19. 钢丝流-BISU的战斗哲学
  20. ubuntu平台下编译vlc-android视频播放器实践

热门文章

  1. Linux启动lumerical服务,Lumerical 2016a build 736 WinLinuxMac
  2. VectorDraw 10.1 专业版CAD组件-Crack
  3. MDT 评测 — 华为 P30 Pro 屏幕素质报告
  4. android显示ios emoji表情符号,UITextView/UITextField检测并过滤Emoji表情符号
  5. NVIDIA官网页面加载慢
  6. 用友U8案例教程生产订单前台操作
  7. 计算机智能化弱电设备发展趋势,建筑智能化与弱电系统的区别?发展趋势怎样...
  8. 2013年4月广告联盟行业网站综合影响力排名
  9. 2013年6月北京上海CISA认证考试辅导研讨会
  10. LabVIEW NXG4.0导入dll