Json格式与解析(一)
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格式与解析(一)相关推荐
- 关于json格式字符串解析并用mybatis存入数据库
园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...
- golang常用库之mapstructure包 | 多json格式情况解析、GO json 如何转化为 map 和 struct、Go语言结构体标签(Struct Tag)
文章目录 golang常用库之mitchellh/mapstructure包 | go将map转换为struct 一.msgpack 二.背景 三.多json格式情况解析使用思路 四.mapstruc ...
- [IOS开发教程] IOS中用NSJSONSerialization来实现对JSON格式的解析
IOS中对JSON格式的解析通常可以采用NSJSONSerialization来实现. 如,我们可以用个简答的HTTP请求的方式获取JSON数据,(以下都是在playground中写的) var ur ...
- hive中json格式字段解析及map使用
json 如果hive表中有扩展字段,那么扩展字段格式最常见的就是json格式,所以如何解析json字符串相对繁琐(虽然没啥技术
- Json格式数据解析
一.简介 XML这种数据格式.XML的特点是功能全面,但标签繁琐,格式复杂.在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构. JSON是JavaScript Object Nota ...
- Json格式的解析,JsonObject、JSONArray
1.将json字符串转成json格式 com.alibaba.fastjson.JSONObject object = JSONArray.parseObject(newJson); 2.根据属性获取 ...
- json格式的解析,list如何转换json格式
list转换成json,然后在js里获取: 基本格式: controller里: JSONObject json = new JSONObject(); json.put("data&quo ...
- JSON格式字符串解析,转换为JSONObject
有时候收到一个String 类型的json字符串,需要获取指定key的value值,可以先将String转换为json对象,然后通过get方法获取指定key的value String str = &q ...
- oracle如何解析json,oracle 解析json格式
1. CREATE OR REPLACE PACKAGE PKG_ANALYSE_COMMON IS -- AUTHOR : YZCHEN -- CREATED : 2013/11/26 14:12: ...
最新文章
- USB HID report descriptor
- adb查看手机cpu使用率_记录一下Unity打包Android在骁龙cpu上概率性卡死的问题
- Python 的 eval() 与 exec()区别
- Python学习笔记011_模块_标准库_第三方库的安装
- ECMAScript、JavaScript与Nodejs的区别
- 无需再忙了:Lambda-S3缩略图,由SLAppForge Sigma钉牢!
- 打印发现function toUpperCase() { [native code] }
- 用冒泡法对10个整数从小到大排序
- 网站高并发优化性能调优总结
- 日文邮件变成乱码解决方案
- 华为云发布“华为鲲鹏”培训认证体系,助力开发者“化鲲为鹏”
- 如何快速入行云计算?云计算的学习要点有哪些?
- SylixOS网络协议栈---Lwip协议栈之ARP表
- ubuntu18.10 编译安装caffe gpu版本
- 百度翻译API的调用
- CentOS防火墙开启masquerade后即开启包转发功能
- 矩阵对角化,SVD分解
- Java程序员转行可以做什么?程序员
- 钢丝流-BISU的战斗哲学
- ubuntu平台下编译vlc-android视频播放器实践
热门文章
- Linux启动lumerical服务,Lumerical 2016a build 736 WinLinuxMac
- VectorDraw 10.1 专业版CAD组件-Crack
- MDT 评测 — 华为 P30 Pro 屏幕素质报告
- android显示ios emoji表情符号,UITextView/UITextField检测并过滤Emoji表情符号
- NVIDIA官网页面加载慢
- 用友U8案例教程生产订单前台操作
- 计算机智能化弱电设备发展趋势,建筑智能化与弱电系统的区别?发展趋势怎样...
- 2013年4月广告联盟行业网站综合影响力排名
- 2013年6月北京上海CISA认证考试辅导研讨会
- LabVIEW NXG4.0导入dll