java循環獲取json數組(如何獲取json中的數組)

  • 1、java怎麼讀取json格式的數據
  • 2、JAVA怎麼取JSON數組裡的值???
  • 3、java json數組遍歷層如下結果,跪求大神
  • 4、JAVA中json讀取數組的方法
  • 5、跪求大神,用js或者java循環遍歷json數組,實現下面功能,太難了,實在不會,跪求了(6)。

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);

需要寫一個方法,把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集合數據中的值應該沒問題了吧。

!DOCTYPE HTML

html lang=”en-US”

head

meta charset=”UTF-8″

titlemenu/title

style type=”text/css”

/style

/script

script type=”text/javascript”

var json = [

    {

        “index”: “name”,

        “id”: 4,

        “colspan”: 1,

        “sort”: 0,

        “title”: “你是”,

        “age”: 40

    }, 

    {

        “id”: 4,

        “colspan”: 3,

        “sort”: 1,

        “title”: “我”,

        “age”: 40

    }, 

    {

        “id”: 4,

        “colspan”: 15,

        “sort”: 2,

        “title”: “的”,

        “age”: 40

    }, 

    {

        “index”: “a”,

        “id”: 3,

        “colspan”: 1,

        “sort”: 0,

        “title”: “人”,

        “age”: 20

    }, 

    {

        “index”: “b”,

        “id”: 3,

        “colspan”: 1,

        “sort”: 1,

        “title”: “好”,

        “age”: 20

    }, 

    {

        “id”: 3,

        “colspan”: 5,

        “sort”: 2,

        “title”: “馬”,

        “age”: 40

    }, 

    {

        “id”: 2,

        “colspan”: 2,

        “sort”: 0,

        “title”: “上”,

        “age”: 40

    }, 

    {

        “id”: 2,

        “colspan”: 2,

        “sort”: 1,

        “title”: “就”,

        “age”: 40

    }, 

    {

        “index”: “f”,

        “id”: 2,

        “colspan”: 1,

        “sort”: 2,

        “title”: “額”,

        “age”: 25

    }, 

    {

        “index”: “c”,

        “id”: 1,

        “colspan”: 1,

        “sort”: 0,

        “title”: “一”,

        “age”: 30

    }, 

    {

        “index”: “d”,

        “id”: 1,

        “colspan”: 1,

        “sort”: 1,

        “title”: “個”,

        “age”: 25

    }

];

var array = [], obj = {};

for (var i = 0; i  json.length; i++) 

{

    var temp = obj[json[i].id];

    if (!temp) 

    {

        obj[json[i].id] = [

            json[i]

        ];

    } 

    else if (temp.length  0) 

    {

        temp.push(json[i]);

        temp.sort(function(a, b) 

        {

            var x = parseFloat(a[“sort”], 10), y = parseFloat(b[“sort”], 10);

            if (x  y) 

            {

                return 1;

            } 

            else if (x  y) 

            {

                return -1;

            } 

            else 

            {

                return 0;

            }

        });

    }

}

for (var p in obj) 

{

    array.push(obj[p]);

}

array.sort(function(a, b) 

{

     var x = parseFloat(a[0].id, 10), y = parseFloat(b[0].id, 10);

    if (x  y) 

    {

        return -1;

    } 

    else if (x  y) 

    {

        return 1;

    } 

    else 

    {

        return 0;

    }

});

console.log(array)

/script

/head

body

/body

/html

Java語言以JSON的官方庫和JSON-lib庫來寫

取likes是

String t=轉義後的{“initial”:”R”,”name”:”reiz”,”likes”:[“JavaScript”,”Skiing”,”Apple Pie”]}

JSONObject jo=new JSONObject(t); //json-lib中是jo=JSONObject.fromObject(t);

JSONArray likes=jo.getJSONArray(“likes”); //得到likes數組

System.out.prinlnt(like.getString(2)); //打印Apple Pie

var origin = [

{“first_id”:1,”first_name”:”中學”,”second_id”:”1-1″,”second_name”:”一年級”,”third_id”:”1-1-1″,”third_name”:”一年級一班”,”people”:10,”age”:10,”parent”:5},

{“first_id”:1,”first_name”:”中學”,”second_id”:”1-1″,”second_name”:”一年級”,”third_id”:”1-1-2″,”third_name”:”一年級二班”,”people”:11,”age”:10,”parent”:5},

{“first_id”:1,”first_name”:”中學”,”second_id”:”1-2″,”second_name”:”二年級”,”third_id”:”1-2-1″,”third_name”:”二年級一班”,”people”:20,”age”:10,”parent”:5},

{“first_id”:1,”first_name”:”中學”,”second_id”:”1-2″,”second_name”:”二年級”,”third_id”:”1-2-2″,”third_name”:”二年級二班”,”people”:21,”age”:10,”parent”:5},

{“first_id”:2,”first_name”:”高中”,”second_id”:”2-1″,”second_name”:”一年級”,”third_id”:”2-1-1″,”third_name”:”一年級一班”,”people”:31,”age”:10,”parent”:5}

];

var finalData = []; // 最終的數據

transferData(); // 數據轉換

console.log(finalData, JSON.stringify(finalData));

function transferData() {

origin.forEach(function(n) {

var first = getRecordById(n.first_id, finalData);

if (first) {

first.age += n.age;

first.parent += n.parent;

first.people += n.people;

var second = getRecordById(n.second_id, first.children);

if (second) {

second.age += n.age;

second.parent += n.parent;

second.people += n.people;

var third = getRecordById(n.third_id, second.children);

if (third) {

// 這裡應該不會存在

} else {

second.children.push({

id: n.third_id,

name: n.third_name,

age: n.age,

parent: n.parent,

people: n.people

});

}

} else {

first.children.push({

id: n.second_id,

name: n.second_name,

age: n.age,

parent: n.parent,

people: n.people,

children: [{

id: n.third_id,

name: n.third_name,

age: n.age,

parent: n.parent,

people: n.people

}]

});

}

} else {

finalData.push({

id: n.first_id,

name: n.first_name,

age: n.age,

parent: n.parent,

people: n.people,

children: [{

id: n.second_id,

name: n.second_name,

age: n.age,

parent: n.parent,

people: n.people,

children: [{

id: n.third_id,

name: n.third_name,

age: n.age,

parent: n.parent,

people: n.people

}]

}]

});

}

});

}

function getRecordById(id, data) {

for (var i = 0, n = data.length; i  n; i++) {

if (data[i].id == id) return data[i];

}

return null;

}

原創文章,作者:OJVD5,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126835.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OJVD5的頭像OJVD5
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論