我需要使用另一个用户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
这样做。我有以下方法,但不确定如何newUserId
在其中构造一个新的json,并且所有内容都应该相同?
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)
样
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句