我想了一下,但是得有一個前提,就是第一個json數組的size必須和第二個json數組的size相同,并且一一對應,否則將造成數組溢出。
創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為貞豐企業(yè)提供專業(yè)的做網站、網站設計,貞豐網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發(fā)。
如果是基于上面這個前提,那么實現的方法就簡單了。
操作json對象,其實標準的方法是將實體類轉換成json后再操作,我這里的話為了便捷直接使用谷歌的Gson來創(chuàng)建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項目的代碼一般使用的svn版本控制工具來整合到一起。
svn是可以每天更新代碼,上傳各自代碼,遇到沖突的時候,可以比較解決。
使用java編程語言,對文件進行操作,合并多個文件,代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import static java.lang.System.out;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.Arrays;
public class test {
public static final int BUFSIZE = 1024 * 8;
public static void mergeFiles(String outFile, String[] files) {
FileChannel outChannel = null;
out.println("Merge " + Arrays.toString(files) + " into " + outFile);
try {
outChannel = new FileOutputStream(outFile).getChannel();
for(String f : files){
FileChannel fc = new FileInputStream(f).getChannel();
ByteBuffer bb = ByteBuffer.allocate(BUFSIZE);
while(fc.read(bb) != -1){
bb.flip();