1 JSON简介

JSON(JavaScript Object Notation),类似于XML,是一种轻量级的数据交换格式,比如在JavaEE中Struts2与Ajax在来回传递数据时,除了可以利用XML外,还可以利用JSON。在JavaScript中有两种JSON的语法,一种用于创建对象,另一种用于创建数组。

1.1 使用JSON语法创建对象

     如图1.1所示,在创建object对象时,以“{”开始,以“}"结束。对象的每个属性名和属性值之间以英文冒号":"隔开,多个属性定义之间以英文逗号","隔开,最简单的形式{"name":"json"},当有多个key/value值时,只须用英文逗号隔开就可以,{"name":"json","sex":"male"}。我们也可以通过JSON的方式来创建JavaScript对象,例如下面创建的ride对象:
var ride={
make:'yamaha',
model:'demo',
year:2005,
owner:{
name:'yue',
occupation:'worker'
}
}

图 1.1

1.2使用JSON语法创建数组

   如图1.2所示,如普通数组一样,它的基本格式是
      ['arr1','arr2','arr3'];
图 1.2
它的值可以是双引号括起来的字符串(String)、数值(number)、true、false、 null、对象(object)或者数组(array),如图1.3所示。

图 1.3

2 Java解析和构造JSON数据

2.1 所需要的依赖包

 解析和构造JSON对象需要用到以下的jar文件:

2.2 Java的基本实现

Employee类:

public class Employee {
private String name;
private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} }

下面是关于JSON的一些基本操作

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建JSON对象
JSONObject json = new JSONObject();
// 创建两个Map对象和一个List对象
Map<String, String> map1 = new HashMap<String, String>();
map1.put("name", "little");
map1.put("sex", "male");
map1.put("age", "23");
Map<String, String> map2 = new HashMap<String, String>();
map2.put("name", "big");
map2.put("sex", "male");
map2.put("age", "28");
List<Map> list = new ArrayList<Map>();
list.add(map1);
list.add(map2);
// 创建一个Employee对象
Employee em = new Employee();
em.setName("little");
em.setAge(23);
// 将Map转换成JSON数据
JSONArray ja1 = JSONArray.fromObject(map1);
// 将 List转换成JSON数据
JSONArray ja2 = JSONArray.fromObject(list);
// 将JavaBean转换成JSON数据
JSONArray ja4 = JSONArray.fromObject(em);
// 数组转换成JSON数据
String[] str = { "sk", "sk1", "sk2" };
JSONArray ja3 = JSONArray.fromObject(str);
System.out.println(ja1);
System.out.println(ja2);
System.out.println(ja3);
System.out.println(ja4);
// 构造JSON数据
json.put("map", ja1);
json.put("employee", ja2);
System.out.println(json);
// 解析JSON数据
JSONArray ja = json.getJSONArray("employee");
for (int j = 0; j < ja.size(); j++) {
System.out.println(((JSONObject) ja2.get(j)).get("name") + ","
+ ((JSONObject) ja2.get(j)).get("sex") + ","
+ ((JSONObject) ja2.get(j)).get("age"));
} } }
输出结果
[{"sex":"male","age":"23","name":"little"}]

[{"sex":"male","age":"23","name":"little"},{"sex":"male","age":"28","name":"big"}]

["sk","sk1","sk2"]

[{"age":23,"name":"little"}]

{"map":[{"sex":"male","age":"23","name":"little"}],"employee":[{"sex":"male","age":"23","name":"little"},{"sex":"male","age":"28","name":"big"}]}

little,male,23

big,male,28

3 参考文献





JSON数据解析的更多相关文章

  1. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...

  2. JSON数据解析 基础知识及链接收集

    JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法.类似 XML.但是JSON 比 ...

  3. 浅谈JSON数据解析方法

    JSON数据解析 JSON是什么?? 如何把JSON数据解析出来 如何把一个字典转换为JSON JSON详细介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交 ...

  4. JSON数据解析(转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  5. JSON数据解析(GSON方式) (转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...

  6. iOS - JSON 数据解析

     iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...

  7. iOS开发笔记3:XML/JSON数据解析

    这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...

  8. Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题

    1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应 ...

  9. iOS学习—JSON数据解析

      关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...

  10. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

随机推荐

  1. Python基础三. 函数、lambda、filter、map、reduce

    一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...

  2. MVC中自带的异步((Ajax.BeginForm)无效

    1.确定unobtrusive-ajax已经引用,VS2012带,2013不带 2.注意jq和unobtrusive-ajax引用顺序问题,确保jq在前 3.注意JQ和unobtrusive-ajax ...

  3. Java学习笔记,第三章

    Java基础语法 3.1类型.变量与运算符 3.1.1类型 Java可分为基本类型和类类型或参考类型.基本类型主要有 整数:可分为short整数(2字节,-32768 -- 32767),int整数( ...

  4. delphi 判断一个数组的长度用 Length 还是 SizeOf ?

    判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是 ...

  5. openSUSE4.1 安装docker

    安装完Leap后,通过YaST-Software Management安装docker. 安装 docker . yast2-docker. ruby2.1-rubygem-docker-api  . ...

  6. 《30天自制操作系统》19_day_学习笔记

    harib16a: 这一部分,我们在系统中实现读取文件内容的命令type.在windows中,输入“type 文件名”,在Linux中,输入“cat 文件名”都可以显示文件的内容.我们先来看看如何读取 ...

  7. windows10搭建django1.10.3+Apache2.4

    很多教程都是在linux上搭建,windows上似乎天生不太适合,但是我还是愿意试试这个坑. 首先 交代一下自己的环境 python3.5.2 64位 django 1.10.3 apache 2.4 ...

  8. Babel下的ES6兼容性与规范

    前端开发 Babel下的ES6兼容性与规范   ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问 ...

  9. The connection to adb is down,and a server error has occured.解决办法---------------------亲测有效

    认真读error: 办法一: 点击项目右键->Android tools ->Fix Project Properties,检查项目属性 办法二: 设备管理器,查看是否存在adb进程 如果 ...

  10. 搭建S3C6410开发板的测试环境

      因为ARM架构的开发板可基于X86架构的PC在CPU指令以及二进制上都有所不同,而且如果linux驱动需要访问硬件,这些硬件很难在PC上模拟,所以就需要我们在带有这些硬件的开发板上进行调试和测试. ...