本文目錄一覽:
- 1、求java合併json數據的代碼
- 2、java中,怎麼把兩個jsonObject合併成一個?
- 3、java json 深度合併
- 4、兩個json合併
- 5、如何將多個JSON文件合併?
- 6、PHP中將兩個json合併成一個json,求大神幫忙
求java合併json數據的代碼
我想了一下,但是得有一個前提,就是第一個json數組的size必須和第二個json數組的size相同,並且一一對應,否則將造成數組溢出。
如果是基於上面這個前提,那麼實現的方法就簡單了。
操作json對象,其實標準的方法是將實體類轉換成json後再操作,我這裡的話為了便捷直接使用谷歌的Gson來創建JsonObject了,其他的json依賴還有阿里巴巴的FastJson等等,看你平時用什麼習慣。
引入Gson依賴:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.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.EntryString, JsonElement item : json3.entrySet()) {
json1.addProperty(item.getKey(), item.getValue().getAsString());
}
}
System.out.println(jsonArray1);
}
}
整體思路為:遍歷兩個json數組,按位進行合併操作。合併時,遍曆數據3的jsonObject,獲取其key和value,並將其合併到數據1中即可。
運行結果:
java中,怎麼把兩個jsonObject合併成一個?
方法為,把兩個拼裝好的JSON串合併成一個新的JSON,兩個JSON相同的key值情況下只保存一個,後放入的JSON串對應key的Value值會覆蓋先放入的。
具體操作設置方法為
import net.sf.json.JSONObject;
public class JSONCombine
{
public static void main(String[] args)
{
JSONObject jsonOne = new JSONObject();
JSONObject jsonTwo = new JSONObject();
jsonOne.put(“name”, “kewen”);
jsonOne.put(“age”, “24”);
jsonTwo.put(“hobbit”, “Dota”);
jsonTwo.put(“hobbit2”, “wow”);
JSONObject jsonThree = new JSONObject();
jsonThree.putAll(jsonOne);
jsonThree.putAll(jsonTwo);
System.out.println(jsonThree.toString());
}
}
運行結果:
{“name”:”12345″,”age”:”24″,”hobbit”:”Dota”,”hobbit2″:”wow”}
json轉object示例
ObjectMapper objectMapper = new ObjectMapper();
YourClass class = objectMapper.readValue(YourJson, YourClass.class);
如果json中有新增的欄位並且是YourClass類中不存在的,則會轉換錯誤。
1)需要加上如下語句,這種方法的好處是不用改變要轉化的類
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
YourClass class = objectMapper.readValue(YourJson, YourClass.class);
2)jackson庫還提供了註解方法,用在class級別上
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true)
public class YourClass {
…
}
java json 深度合併
跟你講一下思想吧,為了通用我們需要將問題考慮為並不是合併2個json,而是合併n個json
首先利用json包解析已知n個json字元串使其成為Map,
創建新空的jsonA對象,開始對n個已知json使用深度遍歷,
深度遍歷的開始點將會把jsonA的指針初始化,深度遍歷第n個json的每個節點,jsonA的指針隨之變動,若jsonA指針指向為空,則與其遍歷的第n個json節點進行賦值。
即可對json進行合併。
兩個json合併
var str1=[{name:”11″,age:11}];var str2=[{name:”22″,age:22}];var str3 = [];for (var i = 0; i str1.length; i++) { str3.push(str1[i]);}for (var i = 0; i str2.length; i++) { str3.push(str2[i]);}————–var str3 = str1.concat(str2);
如何將多個JSON文件合併?
將這些json文件內容合併,然後將合併後的內容預置到main.js中,修改cocos源碼,判斷如果請求的是asset json則從預置的main.js中讀取出來,避免網路請求;
1、
需要修改main.js和cocos2d-js-min.js這兩個文件;
2、將生成的所有json文件內容合併成一個大的json object,格式:{“json1文件名”:”json1文件內容”, “json2文件名”:”json2文件內容” …}
3、copy出工具生成的json文件內容,放到main.js中:
粘貼的圖像1484×330 87.3 KB
4、然後在 main.js里加上很挫的幾行代碼:
window.inner_downloadText = function (item, callback) {
if (item.type === “uuid”) {
if (jsonObj[item.uuid]) {
callback(null, jsonObj[item.uuid]);
} else if (jsonObj[item.id]) {
callback(null, jsonObj[item.id]);
}
return true;
}
return false;
};
放在這裡:
5、修改 cocos2d-js-min.js文件,找到 第20行,第2833列,插入很挫的代碼:
if(window.inner_downloadText(t,e)) {return;};
PHP中將兩個json合併成一個json,求大神幫忙
先把兩個json字元串都變成PHP的數組,這樣兩個數組可以用 PHP 的 array_merge來合併。
合併完了之後的數組再用一下PHP 的 json_encode 就得到你要的結果了。
具體過程如下 :
json_encode(
array_merge(
json_decode($json1),
json_decode($json2)
)
);
原創文章,作者:MWITX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/317238.html