json

一 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包在我的资源里面)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值