gson是指谷歌的json处理工具么?
一般要先定义好一个类,然后使用第三方工具操作,比较方便。
目前恰好使用的是Google的,这边有个样例,可以参考下:public class GoogleJsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
Object myValue = new MyValue("9527", 999.99); // 对象转为json // String jsonStr = convertObjectToString(myValue);
String jsonStr = gson.toJson(myValue);
System.out.println(jsonStr + myValue.getClass()); // json字符串转为对象
MyValue myValue2 = gson.fromJson(jsonStr, MyValue.class);// 这个应该是你想要的操作吧
System.out.println(myValue2);
System.out.println(myValue == myValue2);
List<Object> myValueList = new ArrayList<Object>();
myValueList.add(myValue);
myValueList.add("111");
myValueList.add(myValue2); String jsonStrValues = gson.toJson(myValueList);
System.out.println("jsonStrValues===" + jsonStrValues);
List<Object> myValueList2 = gson.fromJson(jsonStrValues, List.class);// 有告警
for (Object obj : myValueList2) {
System.out.println("obj is===" + obj+":"+obj.getClass());
} }
}// 这个是我自定义的一个简单的类,LZ需要自己定义一个类,有Name和Chinese属性
class MyValue {
private String id; private double price; private Detail detail; public MyValue(String id, double price) {
this.id = id;
this.price = price;
this.detail = new Detail("我的ID是:" + id + "。很高兴认识大家!");
} @Override
public String toString() {
return "id:" + id + ";price:" + price + ";宣言:" + detail.getMyWords();
} private class Detail {
private String myWords; public Detail(String myWords) {
this.myWords = myWords;
} public String getMyWords() {
return myWords;
}
}
}
一般要先定义好一个类,然后使用第三方工具操作,比较方便。
目前恰好使用的是Google的,这边有个样例,可以参考下:public class GoogleJsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
Object myValue = new MyValue("9527", 999.99); // 对象转为json // String jsonStr = convertObjectToString(myValue);
String jsonStr = gson.toJson(myValue);
System.out.println(jsonStr + myValue.getClass()); // json字符串转为对象
MyValue myValue2 = gson.fromJson(jsonStr, MyValue.class);// 这个应该是你想要的操作吧
System.out.println(myValue2);
System.out.println(myValue == myValue2);
List<Object> myValueList = new ArrayList<Object>();
myValueList.add(myValue);
myValueList.add("111");
myValueList.add(myValue2); String jsonStrValues = gson.toJson(myValueList);
System.out.println("jsonStrValues===" + jsonStrValues);
List<Object> myValueList2 = gson.fromJson(jsonStrValues, List.class);// 有告警
for (Object obj : myValueList2) {
System.out.println("obj is===" + obj+":"+obj.getClass());
} }
}// 这个是我自定义的一个简单的类,LZ需要自己定义一个类,有Name和Chinese属性
class MyValue {
private String id; private double price; private Detail detail; public MyValue(String id, double price) {
this.id = id;
this.price = price;
this.detail = new Detail("我的ID是:" + id + "。很高兴认识大家!");
} @Override
public String toString() {
return "id:" + id + ";price:" + price + ";宣言:" + detail.getMyWords();
} private class Detail {
private String myWords; public Detail(String myWords) {
this.myWords = myWords;
} public String getMyWords() {
return myWords;
}
}
}
*
*/
private static final long serialVersionUID = -2118483800595534815L;
private String chinese;
private String math;
private String english; public String getChinese() {
return chinese;
} public void setChinese(String chinese) {
this.chinese = chinese;
} public String getMath() {
return math;
} public void setMath(String math) {
this.math = math;
} public String getEnglish() {
return english;
} public void setEnglish(String english) {
this.english = english;
}
@Override
public String toString() {
return "Chinese:"+this.chinese;
}}
Person.java:
package com.armslee.json.test.model;import java.io.Serializable;public class Person implements Serializable { /**
*
*/
private static final long serialVersionUID = 3254237100070656010L; private String id;
private String name; private Grade grade; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Grade getGrade() {
return grade;
} public void setGrade(Grade grade) {
this.grade = grade;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Name:"+this.name+" "+this.grade.toString();
}}Test.java
package com.armslee.json.test.cases;import java.util.ArrayList;
import java.util.List;import net.sf.json.JSONArray;import com.armslee.json.test.model.Grade;
import com.armslee.json.test.model.Person;public class Test { public static void main(String[] args) {
Person p = new Person();
p.setId("1");
p.setName("Lavender");
Grade g = new Grade();
g.setChinese("A");
g.setMath("A");
g.setEnglish("A");
p.setGrade(g); List<Person> lp = new ArrayList<Person>();
lp.add(p);
lp.add(p);
lp.add(p);
String info = JSONArray.fromObject(lp).toString(); JSONArray ja = JSONArray.fromObject(info); @SuppressWarnings({ "unchecked", "deprecation" })
List<Person> newL = JSONArray.toList(ja, Person.class); for (Person person : newL) {
System.out.println(person.toString());
} }}
输出结果如下:
Name:Lavender Chinese:A
Name:Lavender Chinese:A
Name:Lavender Chinese:A