欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java web之路 json简介

程序员文章站 2024-01-30 20:21:52
...

json格式:{"skill":["java","c"],"name":"王小二","age":23.4}

json是以key-value类型保存,value类型有 String , number, boolean , null , Object[];可以发现有number类型,而没有分int,long,float等数据类型。并且没有日期类型。

对json而言,数字类型只有number,包含了所有的数字类型,日期使用字符串来代替,要使用的时候,再用类型转换处理


json支持的各类语言包地址:http://www.json.org/

1.  不同方法生成json对象

package json;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.JSONObject;

import entity.Items;

public class UseJson {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		jsonObject();
		mapToJson();
		javabeansToJson();
	}

	/**
	 * 通过语言包
	 */
	public static void jsonObject(){
		JSONObject w = new JSONObject();
		Object nothing=null;
		w.put("name", "王小二");
		w.put("age", 23.4);
		w.put("skill",new String[]{"java","c"});
		w.put("car", nothing);
		System.out.println(w.toString());
	}
	/**
	 * 通过map
	 */
	public static void mapToJson(){
		Map<String, Object> w = new HashMap<>();
		Object nothing=null;
		w.put("name", "王小二");
		w.put("age", 23.4);
		w.put("skill",new String[]{"java","c"});
		w.put("car", nothing);
		/**
		 * JSONObject构建函数,将map对象传进去,会根据map对象内容自动转为json 
		 */
		System.out.println("通过map方法生成json:"+new JSONObject(w).toString());
		
	}
	/**
	 * 通过javabeans
	 */
	public static void javabeansToJson(){
		Items item = new Items();
		item.setCity("上海 ");
		item.setName("java");
		item.setPrice(56);
		System.out.println(new JSONObject(item).toString());
	}
}

2. 从文件中读取json内容

创建json文件 testjson.json

{
	"name": "王小二",
	"age": 23.4,
	"skill": [
		"java",
		"c",
		34
	]
}
使用json方式读取文件内容

package json;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.json.JSONArray;
import org.json.JSONObject;

public class ReadJsonFormFile {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String jsonstring=null;
		File file = new File(ReadJsonFormFile.class.getResource("/json/testjson.json").getFile());
		try {
			//引用org.apache.commons.io读取文件
			jsonstring = FileUtils.readFileToString(file);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		JSONObject jsonobject = new JSONObject(jsonstring);
		//读取文件中的字符串
		System.out.println("姓名: " +jsonobject.getString("name"));
		//读取文件中的数字
		System.out.println("年龄: "+jsonobject.getDouble("age"));
		//读取文件中的数组
		JSONArray jsonarray = jsonobject.getJSONArray("skill");
		for (Object skill : jsonarray) {
			System.out.println("技能:" + skill);
		}
	}

}
从文件中读取,判断读取的对象是否为空,不为空时打印信息,使用的方法
if(!jsonobject.isNull("nikename")){
			System.out.println("昵称:"+jsonobject.getString("nikename"));
		}