中易网

com.google.gson.jsonobject怎样获取

答案:1  悬赏:40  
解决时间 2021-03-14 02:17
com.google.gson.jsonobject怎样获取
最佳答案
使用GoogleGson实现象json字符串间转换

需要gson-1.4.jar

1.JsonUtil.java

Java代码
package com.snail.json;

import java.lang.reflect.Type;
import com.google.gson.Gson;

public final class JsonUtil {

private JsonUtil(){}


public static String toJson(Object obj) {
Gson gson = new Gson();
return gson.toJson(obj);
}


public static T fromJson(String str, Type type) {
Gson gson = new Gson();
return gson.fromJson(str, type);
}


public static T fromJson(String str, Class type) {
Gson gson = new Gson();
return gson.fromJson(str, type);
}

}

2. Person.java

Java代码
package com.snail.json;

public class Person {
private int id;
private String name;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}

3. Test.java

Java代码
package com.snail.json;

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

import com.google.gson.reflect.TypeToken;

public class Test {


public static void objectToJson(){
Person person = new Person();
person.setId(1);
person.setName("one");
//javabean转换json字符串
String jsonStr = JsonUtil.toJson(person);
System.out.println(jsonStr);

//json字符串转换javabean
Person newPerson = JsonUtil.fromJson(jsonStr, Person.class);
System.out.println(person == newPerson);
System.out.println(newPerson.getId()+","+newPerson.getName());
}


public static void listToJson(){
Person person1 = new Person();
person1.setId(1);
person1.setName("one");

Person person2 = new Person();
person2.setId(2);
person2.setName("two");

List list = new ArrayList();
list.add(person1);
list.add(person2);

//javabean转换json字符串
String jsonStr = JsonUtil.toJson(list);
System.out.println(jsonStr);

//json字符串转换javabean象
List rtn = JsonUtil.fromJson(jsonStr, new TypeToken<List>(){}.getType());
for(Person person : rtn){
System.out.println(person.getId()+","+person.getName());
}
}


public static void mapToJson(){
Person person1 = new Person();
person1.setId(1);
person1.setName("one");
Person person2 = new Person();
person2.setId(2);
person2.setName("two");

Map map = new HashMap();
map.put(person1.getId(), person1);
map.put(person2.getId(), person2);

//javabean转换json字符串
String jsonStr = JsonUtil.toJson(map);
System.out.println(jsonStr);

//json字符串转换Map象
Map rtn = JsonUtil.fromJson(jsonStr, new TypeToken<Map>(){}.getType());
for(Entry entry : rtn.entrySet()){
Integer key = entry.getKey();
Person newPerson = entry.getValue();
System.out.println("key:"+key+","+newPerson.getId()+","+newPerson.getName());
}
}

public static void main(String[] args) {
objectToJson();
System.out.println("****************************");
listToJson();
System.out.println("****************************");
mapToJson();
}

}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
仁泉大药房我想知道这个在什么地方
看完A片,下一步做什么?答案不一哦!
是不是在古代的玛雅人的生活里,就有足球这项
战舰世界爱宕多少金币
童年50个好词10句比喻句、拟人句、排比句都行
Stand up,please. 改为否定句怎么改?
Y011在什么地方啊,我要过去处理事情
中大岭南MBA和管院MBA哪个好
y型15kw三相四极电动机铜线几斤
福州金源桑拿价格
枣庄薛城区房价,枣庄薛城区万盛新源的房子怎
2.6厘米用分数表示
新奇骏,打开车门时怎么会听到中控台里有吱吱
高铁为什么烧成这样大火
民勤县宗璞批零部地址在什么地方,想过去办事
推荐资讯
科技最终会有尽头吗?(我的补充问题很多的,
湘潭三星手机专卖店有三星F700这款手机吗?价
老铁传统火锅在哪里啊,我有事要去这个地方
我在厦门唐荣游艇公司打工 家在内蒙古 三年没
8分之7可以看作()米的几分之几?也可以看作
战伟茶馆地址在什么地方,我要处理点事
川商那个东北民居邮币卡现在被套十多个点怎么
赏梅花诗句大全
车子以190迈速度开七分钟多少公里?
如果你接到打错了的电话,你会怎么做?分三步
“梦中你身影模糊了我视线”是什么歌的歌词
思源茶香馆我想知道这个在什么地方
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?