將多個jsonArray合併(scala)
阿新 • • 發佈:2018-12-25
因為業務需求,要將多個jsonArray合併,使用scala分分鐘實現,程式碼異常簡潔。
程式碼
object test extends App{
//構造jsonArray
val obj1 = new JSONObject()
obj1.put("name","breeze")
obj1.put("age",22)
val obj2 = new JSONObject()
obj2.put("name","lsw")
obj2.put("age",20)
obj2.put("addr","hangzhou")
//arr1有2個obj
val jsonArray1 = new JSONArray()
jsonArray1.put(obj1)
jsonArray1.put(obj2)
//arr2有一個obj
val jsonArray2 = new JSONArray()
jsonArray2.put(obj2)
//arr3為空
val jsonArray3 = new JSONArray()
/**
* 接收引數為任意個數的String(jsonArray)
* 將其合併為一個
*/
def combineJsonArray(arrs: String*): String ={
val jsonArray = new JSONArray()
for (arr <- arrs){
//排除空值
if(StringUtils.isNotBlank(arr)){
val jSONArray = new JSONArray(arr)
for(i <- 0 until jSONArray.length()){
jsonArray.put(jSONArray.getJSONObject(i))
}
}
}
jsonArray.toString()
}
}
//不同引數輸出
println("3args:" + combineJsonArray(jsonArray1.toString,jsonArray2.toString,jsonArray3.toString))
println("2args:"+ combineJsonArray(jsonArray1.toString,jsonArray2.toString))
println("1args:"+ combineJsonArray(jsonArray1.toString))
輸出結果
3args:[{"name":"breeze","age":22},{"name":"lsw","age":20,"addr":"hangzhou"},{"name":"lsw","age":20,"addr":"hangzhou"}]
2args:[{"name":"breeze","age":22},{"name":"lsw","age":20,"addr":"hangzhou"},{"name":"lsw","age":20,"addr":"hangzhou"}]
1args:[{"name":"breeze","age":22},{"name":"lsw","age":20,"addr":"hangzhou"}]