java - 如何将两个 JSON 格式的 Java 字符串相加?

标签 java json

我有两个 JSON 格式字符串

 {"user1":{"Iden":4,"nID":1},"user2":{"Iden":5,"nID":1}} // String A JSON 

 {"user1":{"Iden":4,"nID":1},"user3":{"Iden":6,"nID":1},"user2":{"Iden":5,"nID":1}}  

在下面的程序中,上述 JSON 由 Eclipse IDE 格式化

这是我的程序:

import java.util.Map;

import org.codehaus.jackson.type.TypeReference;

import com.tradeking.at.util.JsonHelper;

public class Hi {
    private static JsonHelper jsonHelper = JsonHelper.getInstance();

    public static void main(String[] args) throws Exception {

        Map<String, Tracker> totalCusts = null;

        String A = "{\"user1\":{\"Iden\":4,\"nID\":1},\"user2\":{\"Iden\":5,\"nID\":1}}";
        String B = "{\"user1\":{\"Iden\":4,\"nID\":1},\"user3\":{\"Iden\":6,\"nID\":1},\"user2\":{\"Iden\":5,\"nID\":1}}";

        String totalString =  A+B;

        if (null != totalString) {
            totalCusts = (Map<String, Tracker>) jsonHelper.toObject(
                    totalString, new TypeReference<Map<String, Tracker>>() {
                    });

        }

        System.out.println(totalCusts);

    }

}

追踪器.java:

import org.json.JSONObject;

public class Tracker extends JSONObject{

}

当我运行上面的代码时,输​​出是

{user1={}, user2={}}

如果我使用这个:

String totalString =  B + A ;

O/p 是:

{user1={}, user3={}, user2={}}

请告诉我如何添加两个 JSON 字符串??

最佳答案

在顶层,JSON 文档始终是单个对象数组。通过将两个字符串连接在一起,您违反了这个原则。一个简单的解决方法是将两个值连接到一个数组中:

String totalString =  "[" + A + ", " + B + "]";

然后这样解析。或者您可以简单地一次解析每个 JSON 文档,然后附加或合并您的结果(我怀疑您想通过 Map.putAll 合并它们)。

鉴于您的 userN 键的值为空,您的 JsonHelper 类中可能存在错误,但如果没有看到代码就很难说。

关于java - 如何将两个 JSON 格式的 Java 字符串相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221663/

相关文章:

centos - 没有生成堆转储时的正确策略

java - 如何使异步响应成为同步响应(Java : Android Studio)

java - 3 个支票账户 2 个 build 者为客户提供没有 overdraw 的服务,但是不想 overdraw 的客户可以得到一个

javascript - 如何从 URL 读取 JSON 响应并使用 Javascript 中的键和值(数组内的数组)

json - 从 ADF 中的 API 提取数据

javascript - 过滤电影列表 JavaScript

java - 在父类中使用有关子类的方法是一种不好的做法吗?

java - 将图标添加到菜单项

python - scrapy 项目在将它们存储到 couchdb 时不是 JSON 可序列化的

javascript - 如何检查 JavaScript 中函数返回的内容?