package com.common;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class FileUtils {
private static String content = "",line = System
.getProperty("line.separator");// 换行相当于\n
public static String reader(File file) {
FileReader read = null;
BufferedReader reader = null;
try {
read = new FileReader(file);
reader = new BufferedReader(read);
StringBuffer buffer = new StringBuffer("");
content = reader.readLine();
while (content != null) {
buffer.append(content).append(line);
content = reader.readLine();
}
return content = buffer.toString();// 返回
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (reader != null)
reader.close();
if (read != null)
read.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return "";// 没值就返回空
}
}
package com.entity;
import java.io.Serializable;
import java.util.List;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class Button implements Serializable{
private String name;
private List<SubButton> sub;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<SubButton> getSub() {
return sub;
}
public void setSub(List<SubButton> sub) {
this.sub = sub;
}
}
package com.entity;
import java.io.Serializable;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class SubButton implements Serializable{
private String type;
private String name;
private String url;
private String key;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
package com.json;
import java.io.File;
import java.net.URL;
import java.util.Iterator;
import com.common.FileUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class DoJson1 {
public static void main(String[] args) {
//读取文件的json数据这样就不会那么容易些字符串那么眼花 O(∩_∩)O哈哈~
URL URL = DoJson1.class.getClassLoader().getResource("json");
File file = new File(URL.getFile());
String jsonText=FileUtils.reader(file);
String responseData=jsonText;
JsonParser parser = new JsonParser();
JsonElement jsonEl = parser.parse(responseData);
JsonObject jsonObjRoot = null;
if (jsonEl.isJsonObject()) {
jsonObjRoot = jsonEl.getAsJsonObject();
JsonElement menuEl=jsonObjRoot.get("menu");//menu节点
JsonElement buttonEl=menuEl.getAsJsonObject().get("button");//button节点
boolean flag=buttonEl.isJsonArray();//是否为Json数组
if(flag){
JsonArray jsonArray= buttonEl.getAsJsonArray();//转为数组
///////////////最大的Menu节点///////////
for(Iterator iter=jsonArray.iterator();iter.hasNext();){
JsonObject jop=(JsonObject) iter.next();
String name=jop.get("name").getAsString();
System.out.println(name);//将最大自定义菜单的Button按钮打印出来
///////////////////sub_button/Begin//////////////
JsonElement sub_buttonEl=jop.get("sub_button");//sub_button节点
boolean flag1=sub_buttonEl.isJsonArray();//是否为Json数组
if(flag1){
JsonArray jsonArray1= sub_buttonEl.getAsJsonArray();//转为数组
String url="",key="";
for (Iterator iterator = jsonArray1.iterator(); iterator.hasNext();) {
JsonObject jop1=(JsonObject) iterator.next();
String type=jop1.get("type").getAsString();
String name1=jop1.get("name").getAsString();
//判断这个url的key不是为空的时候就拿出来
if(jop1.has("url")){
url=jop1.get("url").getAsString();
} else{
key=jop1.get("key").getAsString();
}
System.out.println(name1+"\t"+type+"\t"+url+"\t"+key+"\n");
}
}
}
}
}
}
}
package com.json;
import java.io.File;
import java.net.URL;
import java.util.Iterator;
import com.common.FileUtils;
import com.entity.Button;
import com.entity.SubButton;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class DoJson {
public static void main(String[] args) {
URL URL = DoJson1.class.getClassLoader().getResource("json.txt");
File file = new File(URL.getFile());
String responseData=FileUtils.reader(file);
JsonParser parser = new JsonParser();
JsonElement jsonEl = parser.parse(responseData);
JsonObject jsonObjRoot = null;
if (jsonEl.isJsonObject()) {
jsonObjRoot = jsonEl.getAsJsonObject();
JsonElement menuEl=jsonObjRoot.get("menu");//menu节点
JsonElement buttonEl=menuEl.getAsJsonObject().get("button");//button节点
boolean flag=buttonEl.isJsonArray();//是否为Json数组
if(flag){
JsonArray jsonArray= buttonEl.getAsJsonArray();//转为数组
///////////////最大的Menu节点///////////
for(Iterator iter=jsonArray.iterator();iter.hasNext();){
JsonObject jop=(JsonObject) iter.next();
Button b=new Gson().fromJson(jop,Button.class);
System.out.println("最大的节点"+b.getName());//将最大自定义菜单的Button按钮打印出来
///////////////////sub_button/Begin//////////////
JsonElement sub_buttonEl=jop.get("sub_button");//sub_button节点
boolean flag1=sub_buttonEl.isJsonArray();//是否为Json数组
if(flag1){
JsonArray jsonArray1= sub_buttonEl.getAsJsonArray();//转为数组
String url="",key="";
for (Iterator iterator = jsonArray1.iterator(); iterator.hasNext();) {
JsonObject jop1=(JsonObject) iterator.next();
SubButton subButton=new Gson().fromJson(jop1,SubButton.class);//方法二:灵活使用Gson取数据
//判断这个url的key不是为空的时候就拿出来
if(jop1.has("url")){
url=jop1.get("url").getAsString();
} else{
key=jop1.get("key").getAsString();
}
System.out.println(subButton.getName()+"\t"+subButton.getType()+"\t"+url+"\t"+key+"\n");
}
}
}
}
}
}
}
{"menu":
{"button":
[
{"sub_button":
[
{"type":"click","key":"A1","name":"天气预报"},{"type":"click","key":"A2","name":"公交查询"},"key":"A3","name":"地方搜索"},"key":"A4","name":"互译在线"}
],"name":"生活助手"
},{"sub_button":
[
{"type":"click","key":"B1","name":"音乐点播"},"key":"B2","name":"经典游戏"},"key":"B3","name":"美女电台"},"key":"B4","name":"人脸识别"},"key":"B5","name":"天文星座"}
],"name":"休闲驿站"
},"key":"C1","name":"短信服务"},"key":"C2","name":"新闻联播"},"key":"C3","name":"影视在线"},"key":"C4","name":"幽默笑话"},{"type":"view","url":"http://weibo.com/resourceljl","name":"关于我们"}
],"name":"更多体验"}
]
}
}
package com.entity;
import java.io.Serializable;
import java.util.List;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class Menu implements Serializable{
private List<Button> Button;
public List<Button> getButton() {
return Button;
}
public void setButton(List<Button> button) {
Button = button;
}
}
package com.json;
import java.util.Iterator;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
/**
*@Author:jilongliang
*@Email:jilongliang@sina.com
*@Date:2014-1-4
*@CopyRight:liangjilong
*@Description:
*/
public class DoJson2 {
public static void main(String[] args) {
StringBuffer buffer=new StringBuffer();
buffer.append("{\"menu\":");
buffer.append("{\"button\":");
buffer.append("[");
buffer.append("{\"name\":\"生活助手\",\"sub_button\":");
buffer.append("[");
buffer.append("{\"type\":\"click\",\"name\":\"帮助手册\",\"url\":\"http://me2dorg.duapp.com/common/helper.html\",\"sub_button\":[]},");
buffer.append("{\"type\":\"click\",\"name\":\"股票财经\",\"key\":\"14\",\"name\":\"短信阅读\",\"key\":\"11\",\"name\":\"短信笑话\",\"key\":\"13\",\"sub_button\":[]}");
buffer.append("]");
buffer.append("},");
buffer.append("{\"name\":\"新闻博览\",\"name\":\"新闻阅读\",\"key\":\"10\",");
buffer.append("{\"type\":\"view\",\"name\":\"在线帮助\",");
buffer.append("{\"name\":\"游戏娱乐\",\"sub_button\":[]}");
buffer.append("]");
buffer.append("}");
buffer.append("]");
buffer.append("}");
buffer.append("}");
String responseData=buffer.toString();
JsonParser parser = new JsonParser();
JsonElement jsonEl = parser.parse(responseData);
JsonObject jsonObjRoot = null;
if (jsonEl.isJsonObject()) {
jsonObjRoot = jsonEl.getAsJsonObject();
JsonElement menuEl=jsonObjRoot.get("menu");//menu节点
JsonElement buttonEl=menuEl.getAsJsonObject().get("button");//button节点
boolean flag=buttonEl.isJsonArray();//是否为Json数组
if(flag){
JsonArray jsonArray= buttonEl.getAsJsonArray();//转为数组
///////////////最大的Menu节点///////////
for(Iterator iter=jsonArray.iterator();iter.hasNext();){
JsonObject jop=(JsonObject) iter.next();
String name=jop.get("name").getAsString();
System.out.println(name);//将最大自定义菜单的Button按钮打印出来
///////////////////sub_button/Begin//////////////
JsonElement sub_buttonEl=jop.get("sub_button");//sub_button节点
boolean flag1=sub_buttonEl.isJsonArray();//是否为Json数组
if(flag1){
JsonArray jsonArray1= sub_buttonEl.getAsJsonArray();//转为数组
String url="",key="";
for (Iterator iterator = jsonArray1.iterator(); iterator.hasNext();) {
JsonObject jop1=(JsonObject) iterator.next();
String type=jop1.get("type").getAsString();
String name1=jop1.get("name").getAsString();
//判断这个url的key不是为空的时候就拿出来
if(jop1.has("url")){
url=jop1.get("url").getAsString();
} else{
key=jop1.get("key").getAsString();
}
System.out.println(name1+"\t"+type+"\t"+url+"\t"+key+"\n");
}
}
}
}
}
}
}
原文链接:https://www.f2er.com/json/289907.html