文档章节

Json学习

 爱编程的溜溜蛋
发布于 2018/09/25 21:57
字数 390
阅读 12
收藏 0

定义三个json字符串

	- 本文主要介绍了json对象与java对象从简单到复杂之间的转换

import java.util.Arrays;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class TestJson {

public static void main(String[] args) {

	final String  jsonStr = "{\"birdName\":\"bage\",\"birdAge\":2}";
	final String  jsonStrArr = "[{\"birdName\":\"bage\",\"birdAge\":2},{\"birdName\":\"yanzi\",\"birdAge\":5}]";
	final String  jsonStrComplex = "{\"ownName\":\"david\",\"ownAge\":27,\"animal\":{\"animalName\":\"bird\",\"code\":1},\"birds\":[{\"birdName\":\"bage\",\"birdAge\":2},{\"birdName\":\"yanzi\",\"birdAge\":5}]}";
	
	JSONObject jsonObject = JSONObject.parseObject(jsonStr);
	System.out.println("{"+jsonObject.getString("birdName")+":"+jsonObject.getString("birdAge")+"}");
	
	JSONArray jsonArray = JSONArray.parseArray(jsonStrArr);
	int size = jsonArray.size();
    for (int i = 0; i < size; i++) {
    	JSONObject obj = (JSONObject) jsonArray.get(i);
    	System.out.println("["+obj.get("birdName")+","+obj.get("birdAge")+"]");
    }
    
    JSONObject jsonObjectComplex = JSONObject.parseObject(jsonStrComplex);
    System.out.println("ownName:"+jsonObjectComplex.getString("ownName")+","+"ownAge:"+jsonObjectComplex.getString("ownAge"));
    JSONObject jsonObjectAnimal = jsonObjectComplex.getJSONObject("animal");
    System.out.println("animalName:"+jsonObjectAnimal.getString("animalName")+","+"code:"+jsonObjectAnimal.getInteger("code"));
    JSONArray array = jsonObjectComplex.getJSONArray("birds");
    for (Object object : array) {
    	 JSONObject jsonObjectone = (JSONObject) object;
    	 System.out.println("["+jsonObjectone.getString("birdName")+","+jsonObjectone.getString("birdAge")+"]");
	}
    
    System.out.println("json to java object");
    Bird bird = JSONObject.parseObject(jsonStr, Bird.class);
    System.out.println(bird);
    
    List<Bird> birdList = JSONArray.parseArray(jsonStrArr, Bird.class);
    for (Bird bird2 : birdList) {
		System.out.println(bird2);
	}
    
    Ower ower = JSONObject.parseObject(jsonStrComplex,  Ower.class);
    System.out.println(ower);
}

}

class Bird {

String birdName;
Integer birdAge;

public String getBirdName() {
	return birdName;
}
public void setBirdName(String birdName) {
	this.birdName = birdName;
}
public Integer getBirdAge() {
	return birdAge;
}
public void setBirdAge(Integer birdAge) {
	this.birdAge = birdAge;
}

[@Override](https://my.oschina.net/u/1162528)
public String toString() {
	return this.getBirdName()+" "+this.getBirdAge();
}

}

class Ower {

String ownName;
Integer ownAge;
Animal animal;
Bird birds[];

public String getOwnName() {
	return ownName;
}
public void setOwnName(String ownName) {
	this.ownName = ownName;
}
public Integer getOwnAge() {
	return ownAge;
}
public void setOwnAge(Integer ownAge) {
	this.ownAge = ownAge;
}
public Animal getAnimal() {
	return animal;
}
public void setAnimal(Animal animal) {
	this.animal = animal;
}
public String getBirds() {
	return Arrays.toString(birds);
}
public void setBirds(Bird[] birds) {
	this.birds = birds;
}

[@Override](https://my.oschina.net/u/1162528)
public String toString() {
return "{"+this.getOwnName()+","+this.getOwnAge()+","+this.getAnimal()+" "+this.getBirds()+"}";
}

}

class Animal {

String animalName;
Integer code;

public String getAnimalName() {
	return animalName;
}
public void setAnimalName(String animalName) {
	this.animalName = animalName;
}
public Integer getCode() {
	return code;
}
public void setCode(Integer code) {
	this.code = code;
}

[@Override](https://my.oschina.net/u/1162528)
public String toString() {
	return "{"+this.getAnimalName()+","+this.getCode()+"}";
}

}

© 著作权归作者所有

粉丝 0
博文 9
码字总数 4181
作品 0
浦东
程序员
私信 提问
Web开发系列 - JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子...

长征2号
2017/01/05
0
0
2017-05-12日志

现在的主要内容为学习 1,了解javascript的eval()函数,知晓它的作用和原理,从而更深入了解JSON数据格式在JavaScript中的解析和定义,同时查询和使用javascript的delete方法,学习在JavaScrip...

麦兜鱼丸
2017/05/12
3
0
highChart的例子

//个人个科目的学习时间 function getStudyTime(){ $.ajax({ url:"${ctx}//student/model/getStudyTime", type:"POST", success:function(data){ if(data instanceof Object){ console.log(d......

上班不要玩手机
2016/11/07
10
0
解析JQuery中each方法的使用

each() 方法规定为每个匹配元素规定运行的函数。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 概述: each() 方法规定为每个匹配...

前端攻城小牛
2018/12/19
552
0
2017-05-10 日志

总结: 1.上午学习了一下json,主要内容是javascript的对象({key:value,key:value......})和数组(["",""......]),以及将json转换成文本字符串的方法:String myJSONtext = object.to......

善钰
2017/05/10
3
0

没有更多内容

加载失败,请刷新页面

加载更多

SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

xiangyunyan
28分钟前
4
0
C或C++不是C/C++

http://www.voidcn.com/article/p-mucdruqa-ws.html

shzwork
今天
6
0
OSChina 周六乱弹 —— 如何将梳子卖给和尚

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @for_ :划水五分钟,专注两小时。分享Various Artists的单曲《贝多芬第8号钢琴奏鸣曲悲伤的第三乐章》: 《贝多芬第8号钢琴奏鸣曲悲伤的第三乐...

小小编辑
今天
179
8
ES5

什么是ES5:比普通js运行要求更加严格的模式 为什么:js语言本身有很多广受诟病的缺陷 如何:在当前作用域的顶部添加:"use strict" 要求: 1、禁止给未声明的变量赋值 2、静默失败升级为错误...

wytao1995
今天
7
0
c++ 内联函数调用快的原因

见图片分析

天王盖地虎626
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部