【问题标题】:Concat two json objects in java在java中连接两个json对象
【发布时间】:2016-08-31 13:24:31
【问题描述】:

我想连接多个 json 对象。

我有两个这样的json

{"message":"test","status":"0"}

还有这个

{"message":"test-2","status":"1"}

结果必须是

[{"message":"test","status":"0"},{"message":"test-2","status":"1"}]

如何在 Java 中做到这一点?

【问题讨论】:

  • 您想连接来自 JSON 对象的值,或者您想创建它们的数组?您可以参考 SO 上的另一个链接:stackoverflow.com/questions/2403132/concat-multiple-jsonobjects
  • 我不能将 concat 与 json 对象一起使用。我想创建它们的数组
  • 您想将它们作为Strings 还是JSONObjects 在JSONArray 中处理?
  • 我想把它们当作字符串处理

标签: java json


【解决方案1】:

您可以轻松使用JSONObject.toString() 并轻松连接字符串 例如

String x = "[" + obj1.toString() "," + obj2.toString() + "]";

StringBuilder newStr = new StringBuilder() ;
newStr.append("[").append(obj1.toString()).append(",").append(obj2.toString());

【讨论】:

  • 在 obj1.toString() 和 "," 之间缺少一个 +
【解决方案2】:

做这样的事情:

List<String> array = new ArrayList<String>();
array.add("{\"message\":\"test\",\"status\":\"0\"}");
array.add("{\"message\":\"test-2\",\"status\":\"1\"}");
array.toString();

如果您希望用户支持 Java 中的 JSON 对象,请考虑使用 Gson:

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Main {

    public static void main(String[] args) {
        JsonObject json1 = (JsonObject) new JsonParser().parse("{\"message\":\"test\",\"status\":\"0\"}");
        JsonObject json2 = (JsonObject) new JsonParser().parse("{\"message\":\"test-2\",\"status\":\"1\"}");
        JsonArray array = new JsonArray();
        array.add(json1);
        array.add(json2);
        System.out.println(array.toString());
    }
}

这一次可以使用对象为您提供您想要的东西。

【讨论】:

  • '' 运算符对于第 1 行的源级别低于 1.7 是不允许的
  • 而且泛型在1.5之前是不允许的!那又怎样?!
  • 随便做:new ArrayList()
  • 已经修复了,但是我还有一个问题,我必须使用这个add方法和jsonobject。但是add方法只接受字符串值。我该怎么办?
  • @TolgayToklar 你在用什么 JSONObject?
【解决方案3】:
private static void concatJSON() throws IOException, InterruptedException {

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(new File(Main.class.getResource("/file/user.json").toURI())));

JSONObject jsonObj = (JSONObject) obj; //usernameJsonObj

String [] values = {"0.9" , Date.from(Calendar.getInstance().toInstant()).toLocaleString()},
        innermost = {"Accomplished", "LatestDate"}, 
        inner = {"Lesson1", "Lesson2", "Lesson3", "Lesson4"};
String in = "Jayvee Villa";

JSONObject jo1 = new JSONObject();
for (int i = 0; i < innermost.length; i++)
    jo1.put(innermost[i], values[i]);

JSONObject jo2 = new JSONObject();
for (int i = 0; i < inner.length; i++)
    jo2.put(inner[i], jo1);

JSONObject jo3 = new JSONObject();
jo3.put(in, jo2);

String merger = jsonObj.toString().substring(0, jsonObj.toString().length()-1) + "," +jo3.toString().substring(1);

System.out.println(merger);
FileWriter pr = new FileWriter(file);
pr.write(merger);
pr.flush();
pr.close();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多