gpt4 book ai didi

java - 在java中运行时更改json属性的值为1

转载 作者:行者123 更新时间:2023-12-01 09:47:18 26 4
gpt4 key购买 nike

我的 Json 看起来像这样:

{
"source": "somedatabasename",
"lisofobjects": [{
"data": {
"starttime": "145756767377",
"age": "20",
"name": "xyz"
}
}]

}

作为 API 验证的一部分,我想在年龄属性中传递字符串,例如年龄:“xyz”。我创建了一个 POJO 对象并使用 gson 解析 json。我想知道如何在运行时设置年龄值。所以我的请求代码如下所示:

 protected RequestSpecification abc(classnamefromwherejsonisparsed object)
throws JsonSyntaxException, FileNotFoundException, IOException {
RequestSpecBuilder builder = new RequestSpecBuilder();

builder.setContentType(ContentType.JSON);
builder.setBody(object.toJson(object.getallTestData()));

因此,在 getallTestData 中,我只想更改 1 个值,例如此处的年龄。类似于 object.setAge("abc")

最佳答案

如果我理解正确,您需要从示例 json 生成不同的无效测试数据。在这种情况下,这可以工作:

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

...

String json =
"{\n" +
"\"source\": \"somedatabasename\",\n" +
"\"lisofobjects\": [{\n" +
" \"data\": {\n" +
" \"starttime\": \"145756767377\",\n" +
" \"age\": \"20\",\n" +
" \"name\": \"xyz\"\n" +
" }\n" +
"}]" +
"}";

JsonParser parser = new JsonParser();
JsonObject rootObject = parser.parse(json).getAsJsonObject();

JsonObject firstData = rootObject.getAsJsonArray("lisofobjects")
.get(0).getAsJsonObject().getAsJsonObject("data");
firstData.remove("age");
firstData.addProperty("age", "abc");

String modifiedJson = new Gson().toJson(rootObject);

关于java - 在java中运行时更改json属性的值为1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891757/

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