需要寫一個方法,把json數據轉換成list集合數據
public static List jsonToBean(String data, Object bean) {
List list = new ArrayList();
try {
JSONArray array;
try {
array = new JSONArray(data);
for (int i = 0; i < array.length(); i++) {
Object toBean = getBean(bean);
JSONObject ob = new JSONObject();
ob = (JSONObject) array.get(i);
toBean = jsonStrToBean(ob, toBean);
list.add(toBean);
}
return list;
} catch (JSONException e) {
try {
Object obj = null;
JSONObject jsonObj = new JSONObject(data);
Object toBean = getBean(bean);
toBean = jsonStrToBean(jsonObj, toBean);
list.add(toBean);
return list;
} catch (JSONException e1) {
log.error("Error covert String to JSONObject", e);
e1.printStackTrace();
}
e.printStackTrace();
log.error("Error covert String to JSONArray", e);
}
} catch (SecurityException e) {
e.printStackTrace();
}
return list;
}
然後取出list集合數據中的值應該沒問題了吧。
Ⅱ java怎麼得到json中的數據
如果不是Android開發環境的話,首先需要引入處理JSON數據的包:json-lib-2.2.3-jdk15.jar
Java樣例程序如下:
importnet.sf.json.JSONArray;
importnet.sf.json.JSONObject;
publicclassDoJSON{
publicstaticvoidmain(String[]args){
JSONArrayemployees=newJSONArray(); //JSON數組
JSONObjectemployee=newJSONObject(); //JSON對象
employee.put("firstName","Bill"); //按「鍵-值」對形式存儲數據到JSON對象中
employee.put("lastName","Gates");
employees.add(employee); //將JSON對象加入到JSON數組中
employee.put("firstName","George");
employee.put("lastName","Bush");
employees.add(employee);
employee.put("firstName","Thomas");
employee.put("lastName","Carter");
employees.add(employee);
System.out.println(employees.toString());
for(inti=0;i<employees.size();i++){
JSONObjectemp=employees.getJSONObject(i);
System.out.println(emp.toString());
System.out.println("FirstName: "+emp.get("firstName"));
System.out.println("LastName: "+emp.get("lastName"));
}
}
}
運行效果:
[{"firstName":"Bill","lastName":"Gates"},{"firstName":"George","lastName":"Bush"},{"firstName":"Thomas","lastName":"Carter"}]
{"firstName":"Bill","lastName":"Gates"}
FirstName : Bill
LastName : Gates
{"firstName":"George","lastName":"Bush"}
FirstName : George
LastName : Bush
{"firstName":"Thomas","lastName":"Carter"}
FirstName : Thomas
LastName : Carter
Ⅲ java怎麼讀取json格式的數據
java可以使用JSONObject和JSONArray來操作json對象和json數組,具體用法如下
1:java對象與json串轉換:
java對象—json串:
JSONObject JSONStr = JSONObject.fromObject(object);
String str = JSONStr.toString();
json串—java對象:
JSONObject jsonObject = JSONObject.fromObject( jsonString );
Object pojo = JSONObject.toBean(jsonObject,pojoCalss);
2:java數組對象與json串轉換:
java數組—json串:
JSONArray arrayStr = JSONArray.fromObject(List<?>);
String str = arrayStr.toString();
json串—java數組:
JSONArray array = JSONArray.fromObject(str);
List<?> list = JSONArray.toList(array, ?.class);
Ⅳ java怎麼把數據轉成json 數組
有兩種方法實現:
(1)直接轉換:
創建JSONArray對象、JSONObject對象,通過put方法將其數據以鍵值對的形式填充,如例:
//假如有一個Java實體類Person,包括以下屬性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝陽區"));//填充Java實體類集合
}
JSONArray array = new JSONArray();// Json格式的數組形式
JSONObject obj;//json格式的單個對象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一個Java實體對象
try {
obj.put("phone", persons.get(i).getPhone());//json通過put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//將JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通過GSON工具實現:
只需要創建GSON對象,通過toJson方法轉換即可。如例:
//模擬Java數據
Person person = new Person("敏敏", 23, "女", "北京市海淀區");
//創建GSON對象
Gson gson = new Gson();
//調用toJson方法即可轉換為字元串的json格式
String json = gson.toJson(person);
Ⅳ java解析json數據成數組
importnet.sf.json.JSONArray;
publicclassTestJson
{
publicstaticvoidmain(String[]args)
{
="[{"a":"111","b":"222","c":"333"},{"a":"1000","b":"2000","c":"000"},{"a":"999","b":"300","c":"700"}]";
JSONArrayjsonArr=JSONArray.fromObject(json);
Stringa[]=newString[jsonArr.size()];
Stringb[]=newString[jsonArr.size()];
Stringc[]=newString[jsonArr.size()];
for(inti=0;i<jsonArr.size();i++){
a[i]=jsonArr.getJSONObject(i).getString("a");
b[i]=jsonArr.getJSONObject(i).getString("b");
c[i]=jsonArr.getJSONObject(i).getString("c");
}
for(inti=0;i<c.length;i++){
System.out.print(a[i]+"");
System.out.print(b[i]+"");
System.out.print(c[i]);
System.out.println();
}
}
}
Ⅵ java 獲取json返回值中 list 中的數量,如何獲取list中有多少條信息
可以使用三抄種方式,用襲json接收一個list,方法如下:
1、使用org.json.JSONArray包:
1
2
3
4
5
6
7
JSONArray json = new JSONArray();
for(User u : list){
JSONObject jo = new JSONObject();
jo.put("id", u.getId());
jo.put("title", u.getName());
json.put(jo);
}
2、使用net.sf.json包下JSONArray的靜態方法:fromObject(list), 這是網上大多是直接用此方法快捷轉換JSON,但是對於list的要求就是其中的元素是字元串或對象,否則JSON不知道你想要的是什麼數據:
1
JSONArray json = JSONArray.fromObject(list);
3、使用google的gson,將list轉為json字元串:
Ⅶ 如何java解析json數組
packagejava_email.demo;
importcom.google.gson.JsonArray;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;
publicclassReadJSON{
publicstaticvoidmain(Stringargs[]){
JsonParserparser=newJsonParser();//創建JSON解析器
Stringjson="{"title":"創建語音","content":[{"labels":["很好看","很好吃"],"voiceUrl":"/voice/1323423.pcm","voiceText":"很好","createDate":"2018-06-1114:29:43"},{"labels":["很好看1","很好吃"],"voiceUrl":"/voice/1323423.pcm","voiceText":"很好","createDate":"2018-07-2614:30:43"}],"enterpriseId":"20180726"}";
JsonObjectobject=(JsonObject)parser.parse(json);//創建JsonObject對象
System.out.println("title="+object.get("title"));//
System.out.println("enterpriseId="+object.get("enterpriseId"));
JsonArrayarray=object.get("content").getAsJsonArray();//得到為json的數組
System.out.println("content="+array);
for(inti=0;i<array.size();i++){
JsonObjectsubObject=array.get(i).getAsJsonObject();
System.out.println("labels="+subObject.get("labels"));
System.out.println("createDate="+subObject.get("createDate"));
}
}
}
Ⅷ java怎麼將json對象轉換成json數組
1、使用原生的解析:
String json = "...";
JSONArray array= new JSONArray(json);
//遍歷數組里的值,得到每個獨立的對象,然後獲取內對應的值設置到容聲明好的對象中,最終創建對象完成後添加到集合中,如我自己代碼里的片段:
for (int j = 0; j < array.length(); j++) {
obj = array.getJSONObject(j);
Data data = new Data();
data.setThumbnail(obj.getString("thumbnail"));
data.setTitle(obj.getString("title"));
data.setUrl(obj.getString("url"));
mDataList.add(data);
}
2、使用第三方包如Gson,但是這個你得保證你的JSON字元串個z
Ⅸ JAVA中json讀取數組的方法
Java語言復以JSON的官方制庫和JSON-lib庫來寫
取likes是
Stringt=轉義後的{"initial":"R","name":"reiz","likes":["JavaScript","Skiing","ApplePie"]}
JSONObjectjo=newJSONObject(t);//json-lib中是jo=JSONObject.fromObject(t);
JSONArraylikes=jo.getJSONArray("likes");//得到likes數組
System.out.prinlnt(like.getString(2));//列印ApplePie
Ⅹ java中怎樣解析webservice返回的json數據
json(javascript Object Notation 的縮寫)是一個基於文本的,人類可讀的,開放標準的輕量級數據交換格式。它繼承了javascript中的簡單數據結構和相關數組對象,稱為對象。不管它 和javascript的瓜葛,json是語言獨立的,幾乎所有編程語言都能解析它。
json以鍵值對來表示數據。每個值被一個鍵名字引用(鍵名字是個string)。如果你想以json表示人名,他們的名字將被"name"鍵引用,如下:
「name」 : 「James」
所以json用一種容易被應用程序傳遞的方式表現數據,非常完美。
所以當從webservice解析數據時,你要做的第一件事就是搞清楚你的模型。下面我們會分析webservice的響應數據,搞清楚哪些bit代表對象,對象數組,對象所屬的欄位,等等。
但是json可以表示哪些類型的數據呢?
1.對象是大括弧內的所有東東
2.字元串用雙引號
3.數字只是簡單的顯示,如 12345
4. 數組由中括弧包圍
5.布爾值從'true'和'false'獲得,沒有引號
6.null值由'null'表示,沒有引號