3、示例(在java中使用JSON)

本文介绍如何使用 Java 和 JSON.simple 库进行 JSON 数据的编码与解码。包括环境搭建、编码示例及解码操作,适用于初学者快速上手。
  1. 教程链接(json-smple1.1.1.jar文件)
    1. 链接:http://pan.baidu.com/s/1qXPbYHm 密码:v0f0
  2. 如何使用java编程语言编码和解码JSON
  3. 首先准备环境以便针对JSON进行java编程
    1. 下载jsonsimple-1.1.1.jar文件
    2. 把jar文件的路径添加到classpath环境变量当中



  1. JSON和java实体的映射
    1. JSON.simple实体映射从左侧到右侧为解码或者解析,实体映射从右侧到左侧为编码
    2. 1235596-20170911152020797-801310446.png
    3. 解码时,
      1. java.util.List的默认具体类是org.simple.JSONArray,
      2. java.util.Map的默认具体类是org.simple.JSONObject
  2. 在java中编码JSON
    1. 使用java.util.HashMap的子类JSONObject编码一个JSON对象,这里并没有提供顺序
    2. 如果需要严格的元素顺序,可以使用JSONValue.toJSONString(map)方法的有序映射实现,比如java.util.LinkedHashMap.
package jlu.yangzs.json;

import org.json.simple.JSONObject;
class JsonEncodeDemo
{
public static void main(String[] args)
{
	JSONObject obj = new JSONObject();
	obj.put("name", "foo");
	obj.put("num", new Integer(100));
	obj.put("balance", new Double(1000.21));
	obj.put("is_vip", new Boolean(true));
	System.out.print(obj);    
}
}  
运行上面的程序,将会出现下面的结果
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
下面是另外一个例子, 使用java JSONObject展示了JSON对象流
package jlu.yangzs.json;

import java.io.IOException;
import java.io.StringWriter;

import org.json.simple.JSONObject;

public class JsonTest {
	public static void main(String[] args) throws IOException {
		
		JSONObject jsonObejct=new JSONObject();
		
		jsonObejct.put("name", "foo");
		jsonObejct.put("num",new Integer(100));
		jsonObejct.put("balance", new Double(100.21));
		jsonObejct.put("is_vip", new Boolean(true));
		
		//下面两句代码比较关键
		StringWriter out=new StringWriter();
		jsonObejct.writeJSONString(out);
		
		String jsonText=out.toString();
		System.out.println(jsonText);

		
	}

}
运行上面的程序,将会显示下面的结果
{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
在java程序当中解码JSON
  1. 例子当中使用了JSONObject和JSONArray,其中,
    1. JSONObejct就是java.util.Map
    2. JSONArray就是java.util.List
    3. 因此,我们可以使用Map或者是List的标准操作来操作来访问他们
package jlu.yangzs.jsondecode;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonDecodeDemo {
	
	public static void main(String[] args) {
	
		JSONParser parser=new JSONParser();
		
		String s="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
		
		try {
			Object obj=parser.parse(s);
			JSONArray jsonArray=(JSONArray)obj;
			
			System.out.println("the 2nd element of array:");
			System.out.println(jsonArray.get(1));
			
			System.out.println();
			
			JSONObject jsonObj=(JSONObject)jsonArray.get(1);
			System.out.println("Field \"1\"");
			System.out.println(jsonObj.get(1));
			
			s="{}";
			obj=parser.parse(s);
			System.out.println(obj);
			
			s="[5]";
			obj=parser.parse(s);
			System.out.println(obj);
			
			s="[5,2]";
			obj=parser.parse(s);
			System.out.println(obj);
			
			
		} catch (ParseException e) {
			
			e.printStackTrace();
		}
		
	}
	
	
}
运行上面的程序,显示结果如下
the 2nd element of array:
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}

Field "1"
null
{}
[5]
[5,2]




转载于:https://www.cnblogs.com/yangzsnews/p/7505164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值