導航:首頁 > 編程語言 > javajson數組遍歷

javajson數組遍歷

發布時間:2024-08-09 17:51:57

A. java的JSONArray怎麼用比如有一個JSONArray是 [{..."a":123, "

  1. 從json數組中得到相應java數組,如果要獲取java數組中的元素,只需要遍歷該數組。

  2. 數組內容如下:

    /**

    * 從json數組中得到相應java數組

    * JSONArray下的toArray()方法的使用

    * @param str

    * @return

    */

    public static Object[] getJsonToArray(String str) {JSONArray jsonArray = JSONArray.fromObject(str);

    return jsonArray.toArray(); }

3.從json數組中得到java數組,可以對該數組進行轉化,如將JSONArray轉化為String型、Long型、Double型、Integer型、Date型等等。

4.分別採用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。

5.同樣,如果要獲取java數組中的元素,只需要遍歷該數組。

B. java jSon實例編寫

是這么個過程
1、在頁面用js發出個ajax請求,請求類型最好寫成json,建議使用jquery的ajax方法,省事。請求的路徑要配在web.xml中
2、這個請求路徑制定的是一個servlet,就是一個java類,繼承自httpservlet。這個servlet里可以通過request對象獲取到輸入參數,根據輸入參數和自己具體的邏輯拼出個字元串,當然是json格式的。然後輸出。這個不會寫說明你需要補一補java web開發的基礎知識。
3、在頁面的ajax請求的success方法中,直接可以獲取到返回的json對象,然後就根據你的json格式處理吧。

$.ajax({
url: 'ajax/test',//這個是servlet請求路徑
success: function(data) { //data就是servlet輸出的json格式字元串,這里會自動轉化為json對象
alert('Load was performed.');
}
});

C. java中怎麼遍歷jsonarray

String json =
"[" +
" {" +
" \"resultcode\": \"200\"" +
" }," +
" {" +
" \"resultcode\": \"201\"" +
" }" +
"]";
JsonParser jp = new JsonParser();
JsonElement je = jp.parse(json);
JsonArray ja=je.getAsJsonArray();
for (JsonElement jsonElement : ja) {
System.out.println(jsonElement.getAsJsonObject().get("resultcode").getAsString());
}

D. 求java合並json數據的代碼

我想了一下,但是得有一個前提,就是第一個json數組的size必須和第二個json數組的size相同,並且一一對應,否則將造成數組溢出。

如果是基於上面這個前提,那麼實現的方法就簡單了。

操作json對象,其實標準的方法是將實體類轉換成json後再操作,我這里的話為了便捷直接使用谷歌的Gson來創建JsonObject了,其他的json依賴還有阿里巴巴的FastJson等等,看你平時用什麼習慣。

引入Gson依賴:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>

實現代碼:

public class Main {
public static void main(String[] args) {
JsonArray jsonArray1 = new JsonArray();
JsonObject json11 = new JsonObject();
json11.addProperty("數據1", "0000");
json11.addProperty("數據2", "1111");
JsonObject json12 = new JsonObject();
json12.addProperty("數據1", "0000");
json12.addProperty("數據2", "1111");
JsonObject json13 = new JsonObject();
json13.addProperty("數據1", "0000");
json13.addProperty("數據2", "1111");
jsonArray1.add(json11);
jsonArray1.add(json12);
jsonArray1.add(json13);
System.out.println(jsonArray1);

JsonArray jsonArray2 = new JsonArray();
JsonObject json21 = new JsonObject();
json21.addProperty("數據3", "6666");
JsonObject json22 = new JsonObject();
json22.addProperty("數據3", "6666");
JsonObject json23 = new JsonObject();
json23.addProperty("數據3", "6666");
jsonArray2.add(json21);
jsonArray2.add(json22);
jsonArray2.add(json23);
System.out.println(jsonArray2);

//遍歷json數組,按位取出對象
for (int i = 0; i < jsonArray1.size(); i++) {
JsonObject json1 = jsonArray1.get(i).getAsJsonObject();
JsonObject json3 = jsonArray2.get(i).getAsJsonObject();
//遍歷數據3內容,通過Entry獲取數據3的key和value,並合並到數據1中
for (Map.Entry<String, JsonElement> item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}

整體思路為:遍歷兩個json數組,按位進行合並操作。合並時,遍歷數據3的jsonObject,獲取其key和value,並將其合並到數據1中即可。

運行結果:

E. java中把json怎麼轉換成數組

使用原生的解析:

String json = "...";

//遍歷數組里的值,得到每個獨立的對象,然後獲取對應的值設置到聲明好的對象中,最終創建對象完成後添加到集合中,如我自己代碼里的片段:

for (int j = 0; j < array.length(); j++) {

obj = array.getJSONObject(j);

Data data = new Data();

mDataList.add(data);

}

數組聲明

在數組的聲明格式里,「數據類型」是聲明數組元素的數據類型,可以是java語言中任意的數據類型,包括簡單類型和結構類型。「數組名」是用來統一這些相同數據類型的名稱,其命名規則和變數的命名規則相同。

數組聲明之後,接下來便是要分配數組所需要的內存,這時必須用運算符new,其中「個數」是告訴編譯器,所聲明的數組要存放多少個元素,所以new運算符是通知編譯器根據括弧里的個數,在內存中分配一塊空間供該數組使用。利用new運算符為數組元素分配內存空間的方式稱為動態分配方式。

以上內容參考:網路-數組

F. 如何用Java拼接JSON方式遍歷整個樹形節點

//是類似這種嗎
//控制層使用JSONArrayjsonObject=JSONArray.fromObject();轉換
Map<String,Object>map=newHashMap<String,Object>();

map.put("id","1");

map.put("text","實驗外國語學校");

List<Map<String,Object>>fatherList=newArrayList<Map<String,Object>>();

List<Map<String,Object>>list=newArrayList<Map<String,Object>>();

for(Beanbean:list){

if("1".equals(list.getParent_level())){

Map<String,Object>map2=newHashMap<String,Object>();

map2.put("id",list.getId());

map2.put("text",list.getName());

list.add(map2);

}

}
map.put("children",list);

G. java怎麼使用gson解析json字元串

Gson是谷歌推出的解析json數據以及將對象轉換成json數據的一個開源框架. 現在json因其易讀性和高效率而被廣泛的使用著.

相對於java以及其它json的解析框架,Gson非常的好用.

簡單來講就是根據json的數據結構定義出相應的javabean --->"new"出Gson的實例gson---->gson.fromJson(jsonString,JavaBean.class) 即可.

下面給出一個實例來說明.



步驟1:目標:將從webservice傳回的json



{
"status":0,
"result":{
"location":{
"lng":103.98964143811,
"lat":30.586643130352
},
"formatted_address":"四川省成都市雙流縣北一街154",
"business":"簇橋,金花橋",
"addressComponent":{
"city":"成都市",
"district":"雙流縣",
"province":"四川省",
"street":"北一街",
"street_number":"154"
},
"cityCode":75
}
}


先普及下json數據格式定義: json數據只有兩種格式.

一種是對象: 一個大括弧包裹的內容就是一個對象.裡面是無數個逗號相間隔的鍵值對

{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}

一種是數組:一個方括弧包裹的內容就是一個數組,裡面是無數個逗號相間隔的json對象

如:

{
"people":[
{
"firstName":"Brett",
"lastName":"McLaughlin",
"email":"aaaa"
},
{
"firstName":"Jason",
"lastName":"Hunter",
"email":"bbbb"
},
{
"firstName":"Elliotte",
"lastName":"Harold",
"email":"cccc"
}
]
}



步驟2 定義json數據格式對應的javaBean


publicclassResult{
privateIntegerstatus;
privateResultDetailresult;
publicResult(){
}
publicResult(Integerstatus,ResultDetailresult){
super();
this.status=status;
this.result=result;
}
publicResultDetailgetResult(){
returnthis.result;
}
publicIntegergetStatus(){
returnthis.status;
}
publicvoidsetResult(ResultDetailresult){
this.result=result;
}
publicvoidsetStatus(Integerstatus){
this.status=status;
}
@Override
publicStringtoString(){
return"Result[status="+this.status+",result="+this.result
+"]";
}
}
publicclassResultDetail{
Locationlocation;
Stringformatted_address;
;
Stringbusiness;
StringcityCode;
publicResultDetail(){
super();
//TODOAuto-generatedconstructorstub
}
publicResultDetail(Locationlocation,Stringformatted_address,
,Stringbusiness,StringcityCode){
super();
this.location=location;
this.formatted_address=formatted_address;
this.addressComponent=addressComponent;
this.business=business;
this.cityCode=cityCode;
}
(){
returnthis.addressComponent;
}
publicStringgetBusiness(){
returnthis.business;
}
publicStringgetCityCode(){
returnthis.cityCode;
}
publicStringgetFormatted_address(){
returnthis.formatted_address;
}
publicLocationgetLocation(){
returnthis.location;
}
publicvoidsetAddressComponent(){
this.addressComponent=addressComponent;
}
publicvoidsetBusiness(Stringbusiness){
this.business=business;
}
publicvoidsetCityCode(StringcityCode){
this.cityCode=cityCode;
}
publicvoidsetFormatted_address(Stringformatted_address){
this.formatted_address=formatted_address;
}
publicvoidsetLocation(Locationlocation){
this.location=location;
}
}
publicclassLocation{
Stringlng;
Stringlat;
publicLocation(){
}
publicLocation(Stringlng,Stringlat){
this.lng=lng;
this.lat=lat;
}
publicStringgetLat(){
returnthis.lat;
}
publicStringgetLng(){
returnthis.lng;
}
publicvoidsetLat(Stringlat){
this.lat=lat;
}
publicvoidsetLng(Stringlng){
this.lng=lng;
}
@Override
publicStringtoString(){
return"Location[lng="+this.lng+",lat="+this.lat+"]";
}
}
publicclassAddressComponent{
Stringcity;
Stringdistrict;
Stringprovince;
Stringstreet;
Stringstreet_number;
publicAddressComponent(){
super();
//TODOAuto-generatedconstructorstub
}
publicAddressComponent(Stringcity,Stringdistrict,Stringprovince,
Stringstreet,Stringstreet_number){
super();
this.city=city;
this.district=district;
this.province=province;
this.street=street;
this.street_number=street_number;
}
publicStringgetCity(){
returnthis.city;
}
publicStringgetDistrict(){
returnthis.district;
}
publicStringgetProvince(){
returnthis.province;
}
publicStringgetStreet(){
returnthis.street;
}
publicStringgetStreet_number(){
returnthis.street_number;
}
publicvoidsetCity(Stringcity){
this.city=city;
}
publicvoidsetDistrict(Stringdistrict){
this.district=district;
}
publicvoidsetProvince(Stringprovince){
this.province=province;
}
publicvoidsetStreet(Stringstreet){
this.street=street;
}
publicvoidsetStreet_number(Stringstreet_number){
this.street_number=street_number;
}
@Override
publicStringtoString(){
return"AddressComponent[city="+this.city+",district="
+this.district+",province="+this.province+",street="
+this.street+",street_number="+this.street_number+"]";
}
}



測試:

jsonString ( 目標json數據,已經在最上面寫好的)


System.out.println("jsonString:"+jsonString);
Gsongson=newGson();
ResultfromJson=gson.fromJson(jsonString.toString(),Result.class);
System.out.println("******************************************");
System.out.println(fromJson);


結果:

jsonString:{"status":0,"result":{"location":{"lng":103.98964143811,"lat":30.586643130352},"formatted_address":"四川省成都市雙流縣北一街154","business":"簇橋,金花橋","addressComponent":{"city":"成都市","district":"雙流縣","province":"四川省","street":"北一街","street_number":"154"},"cityCode":75}}
*******************************************
Result[status=0,result=ResultDetail[location=Location[lng=103.98964143811,lat=30.586643130352],formatted_address=四川省成都市雙流縣北一街154,addressComponent=AddressComponent[city=成都市,district=雙流縣,province=四川省,street=北一街,street_number=154],business=簇橋,金花橋,cityCode=75]]


可見,jsonString已經成功的被轉換成了對應的javaBean



步驟3 : 總結.說明


Gson可以很輕松的實現javaBean和jsonString之間的互轉.只需要明白json如何定義.剩下的就非常簡單了.

閱讀全文

與javajson數組遍歷相關的資料

熱點內容
機房伺服器電源線如何扎線 瀏覽:730
什麼演算法治宣傳 瀏覽:18
哪個app可以測溫槍 瀏覽:17
macmongodbphp 瀏覽:328
php寫游戲伺服器 瀏覽:875
對立陣營插旗命令 瀏覽:369
java實現帕斯卡三角形演算法 瀏覽:314
linux文件名限制 瀏覽:706
金稅三期代理伺服器地址是什麼意思 瀏覽:429
多自變數擬合Python 瀏覽:456
文件夾加密總是失敗 瀏覽:510
androiddexpathlist 瀏覽:626
要卸載己加密的文件怎麼辦 瀏覽:158
ping伺服器ip地址失敗 瀏覽:136
成都黑馬程序員 瀏覽:643
成考app哪個好 瀏覽:702
linux當前線程id 瀏覽:348
哪個app支持掃花唄 瀏覽:838
著色器編譯程序 瀏覽:589
怎樣看app所屬文件夾 瀏覽:543