To Noob Json是什么鬼?

转载请注明出处王亟亟的大牛之路
供应商A:那我们数据怎么交互啊?HTTP吧?那内容呢?JSON?XML?
小菜鸟B:JSON什么鬼?
为了菜鸟们避免以上情况楼主写一发JSON的博文,废话不多!开始!
先梳理下概念
1.JSON是什么
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言 *
JSON 具有自我描述性,更易理解
JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
2.JSON和XML的相同点以及不同点
相同:
JSON 是纯文本
JSON 具有”自我描述性”(人类可读)
JSON 具有层级结构(值中存在值)
JSON 可通过 JavaScript 进行解析
JSON 数据可使用 AJAX 进行传输
不同:
没有结束标签
更短
读写的速度更快
能够使用内建的 JavaScript eval() 方法进行解析
使用数组
不使用保留字

例子:
简单的JSON对象

{
    "name": "wjj"
}
简单的例子,这是一个叫name的json对象,属性是字符串wjj。
{
    "action": 123
}
我们办了变,他现在有一个属性,不过是int型的,值是123.

在我们人工读的时候,很轻易就能解读那一段json字符串

JSON的数据类型
JSON 值可以是:

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

实例
要被解析的json字符串

{
    "phone": [
        "1000000",
        "2000000"
    ],
    "name": "wjj",
    "age": 20,
    "address": {
        "country": "china",
        "province": "shanghai"
    },
    "married": false
}

上面这段json字符串简单的说明了一个人的一些属性,各种类型的数据一目了然,那我们来试着写写这段JSON.

try {
    // 首先最外层是{},是创建一个对象
    JSONObject person = new JSONObject();
    // 第一个键phone的值是数组,所以需要创建数组对象
    JSONArray phone = new JSONArray();
    phone.put("1000000").put("2000000");
    person.put("phone", phone);  

    person.put("name", "wjj");
    person.put("age", 20);
    // 键address的值是对象,所以又要创建一个对象
    JSONObject address = new JSONObject();
    address.put("country", "china");
    address.put("province", "shanghai");
    person.put("address", address);
    person.put("married", false);
} catch (JSONException ex) {
    // 键为null或使用json不支持的数字格式(NaN, infinities)
    throw new RuntimeException(ex);
}  

然后 再试着拆这段JSON

try {

    JSONObject jsonObject = new JSONObject(jsonData);
    person.phoneArray=jsonObject.optJSONArray("phone ");
    person.name=jsonObject.optString("name");
    person.age=jsonObject.optInt("age");
    JSONArray jsonObject1=jsonObject.opJSONArray("address");
    person.country=jsonObject1.opString("country");
    person.province=jsonObject1.opString("province");
    person.married=jsonObject.opBoolean("married");
     } catch (JSONException e) {
            e.printStackTrace();
        }

就是如此,一层一层拨开,逻辑很清晰哦!

再推荐一些方便平时读JSON的地址 :
http://www.bejson.com/
http://json.cn/

今天就到这里,谢谢大家!!

时间: 2024-12-02 08:39:43

To Noob Json是什么鬼?的相关文章

性能指标都是些什么鬼?

本文讲的是性能指标都是些什么鬼?, 原文地址:Performance metrics. What's this all about?原文作者:Artem Denysov译文出自:掘金翻译计划本文永久链接:https://github.com/xitu/gold-miner/blob/master/TODO/performance-metrics-whats-this-all-about.md译者:llp0574校对者:ppp-man,lampui 测量页面的加载性能是一项艰难的任务.因此 Goo

Java JWT: JSON Web Token

  Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JWTs) on the JVM. JJWT is a Java implementation based on the JWT, JWS, JWE, JWK and JWA RFC specific

js- JS中返回值为什么鬼???

问题描述 JS中返回值为什么鬼??? 解决方案 应该是一个html的页面吧 解决方案二: 应该是一个html的页面吧 解决方案三: 为什么是空.?是这样么? 好像是同步的问题吧. 用回调吧. 解决方案四: $.post是异步请求,还没执行完,就已经return html了 $.ajaxSetup({ async : false }); 加在$.post之前,或者用非简写的ajax $.ajax({ type : "post", async : false//设为同步执行 解决方案五:

JS中Eval解析JSON字符串的一个小问题_javascript技巧

之前写过一篇 关于 JSON 的介绍文章,里面谈到了 JSON 的解析.我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用eval() 函数. JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包. JSON的规则很简单:

javascript中eval解析JSON字符串_基础知识

我们都知道,高级浏览器可以用  JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用 eval() 函数. var str = '{"name": "hanzichi", "age": 10}'; var obj = eval('(' + str + ')'); console.log(obj); // Object {name: "hanzichi", age: 10

读取任意 文件目录,生成 json格式!

问题描述 要求实现给一个磁实现盘路径,读出磁盘的文件夹.文件名称,生存树形结构,我目前的思路是循环读取生存json字符串,已经实现部分,多文件夹嵌套级别我仍然没有实现提供我现在的代码intid=1;intsubId=1;StringBuilderjsonStr=newStringBuilder();Dictionary<string,int>pIdWith=newDictionary<string,int>();publicstringInitTree(stringsourceFo

spring-webmvc-4.1.6 接口返回json数据中文出现u0000问题

之前搭建开发环境的时候遇到了一个奇怪的现象,使用spring4.1.6的框架,因为spring的升级处理json的jar也跟着升级到了Jackson2.6的rc1版.具体引入的jar如下图所示:   环境搭建好后写接口采用json数据传递,刚开始没什么问题,但是有一天保存了大量的文字信息,在查询返回的时候出现了编码问题,如图所示:   这是什么鬼,调试了好长时间也找出问题来,中文输入一般情况下没有问题,只有几篇文档会出现这种情况,以为是文档里什么隐含的特殊字符导致的,各种尝试,一个个字复制的尝试

$.ajax传JSON数据到后台出现报错问题解决

 $.ajax传JSON数据到后台时总会出现一些错误,本文整理了一些注意事项,感兴趣的朋友可以参考下 代码如下: $.ajax({  url: "../Services.ashx",  type: "POST",  //data: { 'data': { 'typename': JSON.stringify(typename) }, 'operationType': '2' },  data: { 'data': typename, 'operationType':

说说JSON和JSONP,也许你会豁然开朗,含jQuery用例

前言: 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须支持WebSocket,因此都不能算是ST2的原生解决方案,原生的只有AJAX.  说到AJAX就会不可避免的面临两个