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. sed 技巧

    八.流编辑器sed sed ':a;N;$!ba;s/0.01/0.0001/g' file:a 创建一个labelaN 将下一行读入到模式空间$! 如果不是最后一行,ba跳转到label a处s/0 ...

  2. Spring操作指南-IoC基础环境配置(基于注解自动装配)

    项目源码:http://code.taobao.org/p/LearningJavaEE/src/LearningSpring001%20-%20Automatically%20wiring%20be ...

  3. 樹的DFS和BFS

    菜鸟心得.... 不对请指出....... /*BFS,广度优先搜索树,用最简单的2叉树来举例, 树的结构如下: A B C D E F GH I J K L M N O广度优先搜索树, 顺序应该是A ...

  4. Css定位之relative_慕课网课程笔记

    前言 最近在慕课网上跟着张鑫旭大神重新学习一遍CSS相关的知识,以下是学习的笔记以及个人一些理解 relative对绝对定位的限制 1.限制绝对定位 绝对定位的top.left.right和botto ...

  5. js隐式转换

    JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可 ...

  6. centos7 tomcat service 自启动

    第一步: vim /lib/systemd/system/tomcat.service 第二步:复制以下代码保存退出,注意修改你的tomcat路径 [Unit] Description=tomcat ...

  7. codeforce 121E - Lucky Array

    10^4以内只由4和7构成的数字只有31种,那么做法就很简单了,求出每个数字与其最接近的幸运数的差值,然后建立线段树,线段树维护区间最小值和最小值个数,如果操作过程中最小值<0,那么就去对差值进 ...

  8. github android

    作者:ruijun 链接:https://www.zhihu.com/question/37160415/answer/79569042 来源:知乎 著作权归作者所有,转载请联系作者获得授权. ### ...

  9. 怎么在js中,访问viewbag,viewdata等等的值

    在js中要访问viewbag,viewdata存储的值, var ss='@ViewBag.name'; 一定要加引号,单双随便,还有, ViewBag一定要写规范,不然会编译错误! 成功者的秘诀就是 ...

  10. js中进行金额计算parseFloat

    在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var needPay = parseFloat(pr ...