簡體   English   中英

將多個JSONArray中的JSONObject組合為Java中的單個JSONArray

[英]Combining JSONObject from multiple JSONArray into single JSONArray in Java

正在擁有3個JSONArray,如下所示。

RegionArray:

[  
   {  
      "catalog_product_id":620,
      "region_id":"en_US"
   },
   {  
      "catalog_product_id":40078,
      "region_id":"en_US"
   },
   {  
      "catalog_product_id":1048,
      "region_id":"en_US"
   }
]

CountryArray:

[  
   {  
      "catalog_product_id":620,
      "country_id":"DE"
   },
   {  
      "catalog_product_id":40078,
      "country_id":"DE"
   }
]

CompanyArray:

[
    {  
          "company_id":706,
          "catalog_product_id":40078
       },
       {  
          "company_id":706,
          "catalog_product_id":1048
       }
    }
]

這3個不同的JSONArray正在合並為單個JSONArray,並得到如下結果。 我通過將所有JSONObjects添加到單個公共數組中來制作此數組。 JSONArray.put(regionJSONObj);JSONArray.put(countryJSONObj);JSONArray.put(companyJSONObj);

[  

    {  
      "catalog_product_id":620,
      "region_id":"en_US"
   },
   {  
      "catalog_product_id":40078,
      "region_id":"en_US"
   },
   {  
      "catalog_product_id":1048,
      "region_id":"en_US"
   },
   {  
      "catalog_product_id":620,
      "country_id":"DE"
   },
   {  
      "catalog_product_id":40078,
      "country_id":"DE"
   },
   {  
      "company_id":706,
      "catalog_product_id":40078
   },
   {  
      "company_id":706,
      "catalog_product_id":1048
   }

]

來自所有3個源JSONArray的catalog_product_id鍵在所有3個JSONArray中都相同。因此,我想像以下格式構建目標JSONArray。

[
    {
         "catalog_product_id":620,
         "region_id":"en_US",
         "country_id":"DE",
    },
    {
         "catalog_product_id":40078,
         "region_id":"en_US",
         "country_id":"DE",
         "company_id":706,
    },
    {
         "catalog_product_id":1048,
         "region_id":"en_US",
         "company_id":706

    }

]

3個JSONArray RegionArrayCountryArrayCompanyArray具有公用密鑰catalog_product_id 所以我想將catalog_product_id與所有3個JSONArray匹配,並獲取regioncountrycompany信息,並為該特定catalog_product_id構建單個對象。

Map<String, JArray> map = 
jArrayLis.stream().collect(Collectors.toMap(JArray::getCatalog_product_id, 
Function.identity()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM