gpt4 book ai didi

java - 检查并验证 JSON 中是否存在多个 key i

转载 作者:行者123 更新时间:2023-12-02 05:14:50 26 4
gpt4 key购买 nike

## json 输入##
像这样:

{ "uuId"        :"val1",
"logtime" :"val2",
"taskid" :"val3",
"taskName" :"val4"
}

## 说明##
我想检查 uuId,taskid,taskName 这些字段是必填字段。 首先我想检查 uuId 键是否存在于 jsonstring 中,然后进行下一步检查 相应的值存在或不存在。我如何用java语言进行检查。 我是这样写的,我不知道这是正确的方式。 我想要完善代码。您能帮我提前谢谢吗。

JSONObject objJsonInput = (JSONObject) JSONSerialize.toJSON(inputJson);
if (!objJsonInput.has("uuId")) {
System.out.println("Tag is not Found")
}
/*Again check with another key */
// repeat if process
/*Here check Value is Present or not*/

## Code ##
String uuId=(String)objJsonInput .get("uuId");
if(uuId==""||uuId.equals("")||uuId==null)
{
System.out.printnln("value not present");
}

检查Json的各个键值。如果检查继续到我们要检查的字段数。

是否可以重写这段代码??????你能建议一些完美的代码片段

最佳答案

你可以做这样的事情:

private class FieldsValidation
{
public boolean allFieldsOk = false;
public List<String> fieldErrors = new ArrayList<String>();
}

public static final String ERROR_MESSAGE = "The mandatory field %s is not defined !";

public FieldsValidation checkMandatoryFields(JSONObject objJsonInput, String... keys)
{
FieldsValidation result = new FieldsValidation();
for (String key : keys)
{
if (!objJsonInput.has(key) || objJsonInput.getString(key).isEmpty())
{
result.fieldErrors.add(String.format(ERROR_MESSAGE, key));
}
}
result.allFieldsOk = result.fieldErrors.isEmpty();
return result;
}

然后:

JSONObject objJsonInput = new JSONObject("{\"uuId\" :\"val1\",  \"logtime\"     :\"val2\",  \"taskid\"      :\"val3\",  \"taskName\"    :\"val4\"}");
FieldsValidation validation = checkMandatoryFields(objJsonInput, "uuId", "logtime", "taskid", "taskName");
System.out.println(validation.allFieldsOk);

objJsonInput = new JSONObject("{\"uuId\" :\"val1\", \"logtime\" :\"val2\", \"\" :\"val3\"}");
validation = checkMandatoryFields(objJsonInput, "uuId", "logtime", "taskid", "taskName");
System.out.println(validation.allFieldsOk);
for (String message : validation.fieldErrors) System.out.println(message);

它打印:

true
false
The mandatory field taskid is not defined !
The mandatory field taskName is not defined !

关于java - 检查并验证 JSON 中是否存在多个 key i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27037695/

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