一 Json
//准备解析的json数据
String StrData="[{brand:'华为',price:1999,configuration:{cpu:'麒麟960',memory:4}},{brand:'荣耀',price:2999,configuration:{cpu:'麒麟950',memory:8}}]";
//解析用[ ]括起来的json数据
JSONArray jsonArray=new JSONArray(StrData);
//创建一个存放解析出来的信息的一个集合
List<Phone> list=new ArrayList<>();
for(int i=0;i<jsonArray.length();i++){
//用JSONArray对象来得到一个一个的JSONObject对象(就是 { }括起来的)
JSONObject object=jsonArray.getJSONObject(i);
//创建一个phone对象来存放解析出来的单个对象
Phone phone=new Phone();
phone.setName(object.getString("brand"));
phone.setPrice(object.getInt("price"));
//在object对象里面还有一个configuration对象 继续得到那个对象
object=object.getJSONObject("configuration");
//实例化一个configuration对象用于存放解析出来的数据
Configuration con=new Configuration();
con.setCpu(object.getString("cpu"));
con.setMermory(object.getInt("memory"));
phone.setConfiguration(con);
list.add(phone);
}
System.out.println(list);
//-----------Configuration------------
class Configuration {
private String cpu;
private int memory;
@Override
public String toString() {
return "Configuration [cpu=" + cpu + ", memory=" + memory + "]";
}
public String getCpu() {
return cpu;
}
public void setC(String cpu) {
this.cpu = cpu;
}
public int getMermory() {
return memory;
}
public void setMermory(int mermory) {
this.memory = mermory;
}
}
}
//-----------Phone-------------
public class Phone {
private String name;
private int price;
private Configuration configuration;
public String getName() {
return name;
}
public Configuration getConfiguration() {
return configuration;
}
public void setConfiguration(Configuration configuration) {
this.configuration = configuration;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Phone [name=" + name + ", price=" + price + ", configuration=" + configuration + "]";
}
}
二 Gson(由谷歌开发)
public class GsonTest {
public static void main(String[] args) {
String StrData="[{name:'华为',price:1999,configuration:{cpu:'麒麟960',memory:4}},{name:'华为',price:1999,configuration:{cpu:'麒麟960',memory:4}}]";
//导入Gson依赖包
Gson gson=new Gson();
/*List<Phone> list2=(List<Phone>)gson.fromJson(StrData, List.class);*/
//由于是存储的是自定义对象 fromJson没有 办法 添加 集合 所以 就用TypeToken 来 包装list
TypeToken<List<Phone>> lToken=new TypeToken<List<Phone>>(){};
List<Phone> list=gson.fromJson(StrData,lToken.getType());
System.out.println(list);
}
}
三 fast(由阿里巴巴开发)
public class FastTest {
public static void main(String[] args) {
String StrData="{name:'华为',price:1999,configuration:{cpu:'麒麟960',memory:4}}";
//导入 fast依赖包
Phone PH=JSON.parseObject(StrData, Phone.class);
System.out.println(PH);
String StrData1="[{name:'华为',price:1999,configuration:{cpu:'麒麟960',memory:4}},{name:'荣耀',price:2999,configuration:{cpu:'麒麟950',memory:8}}]";
//用JSON.parseArray方法来添加json数据
List<Phone> list=JSON.parseArray(StrData1, Phone.class);
System.out.println(list);
JSON json=(JSON) JSON.toJSON(list);
System.out.println(json);
}
}
A(json gson fast 的jar包在我的资源里面)