gpt4 book ai didi

java - 如何通过更改其中的一个特定字段来创建新的 json 字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:27 24 4
gpt4 key购买 nike

我需要用另一个用户 ID 来模糊原始 json 字符串中存在的用户 ID。之后,我将构造一个新的 json 字符串,所有内容都相同,但唯一的区别是用户 ID 不同。

举个例子,如果我原来的json字符串是这样的 -

{
"user_id":{"long":1234},
"client_id":{"int":0},
"affinity":[
{
"try":{"long":55793},
"scoring":{"float":0.19}
},
{
"try":{"long":1763},
"scoring":{"float":0.0114}
}
]
}

然后我的新 json 字符串将是 - 唯一的区别是我其中有一个新的用户 ID,除此之外一切都是相同的。

{
"user_id":{"long":98765},
"client_id":{"int":0},
"affinity": [
{
"try":{"long":55793},
"scoring":{"float":0.19}
},
{
"try":{"long":1763},
"scoring":{"float":0.0114}
}
]
}

我遇到的唯一问题是,我不会只有上述格式的 json 字符串,因此我无法使用 POJO 序列化我的 json 字符串,因为我的 json 字符串将具有不同的格式,但 user_id 字段将始终像我所有的 json 字符串中的那样,并且它也将是 long 。其他字段可能会有所不同,具体取决于我拥有的 json 字符串。

我正在使用Gson来执行此操作。我有以下方法,但不确定如何构造一个新的 json ,其中包含 newUserId 并且一切都应该相同?

private static String creatNewJson(String originalJsonResponse, long newUserId) {
JsonElement jelement = new JsonParser().parse(originalJsonResponse);
JsonObject jobject = jelement.getAsJsonObject();
jobject = jobject.getAsJsonObject("user_id");

// not sure what I should do here to construct a new json with newUserId

}

或者Gson不是执行此操作的正确方法?我应该为此使用正则表达式吗?

最佳答案

input.replaceAll("(\"user_id\":\\{\"long\":)\\d+", "$1"+ newID)怎么样?

关于java - 如何通过更改其中的一个特定字段来创建新的 json 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27758906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com