Java 检查并验证JSON i中存在多个密钥

Java 检查并验证JSON i中存在多个密钥,java,json,Java,Json,##json输入## 像这样: { "uuId" :"val1", "logtime" :"val2", "taskid" :"val3", "taskName" :"val4" } ##解释## 我想检查uuId、taskid、taskName这些字段是必填字段。 首先我要检查jsonstring中是否存在uuId键,然后进行下一次检查 相应的值是否存在。我是如何用java语言检查的。 我是这样写的,我不知道这是不是正确的方式。 我想完善代码

##json输入##

像这样:

{ "uuId"        :"val1",
  "logtime"     :"val2",
  "taskid"      :"val3",
  "taskName"    :"val4"
}
##解释##
我想检查
uuId、taskid、taskName
这些字段是必填字段。 首先我要检查jsonstring中是否存在uuId键,然后进行下一次检查 相应的值是否存在。我是如何用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;
}
它打印:

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

您可以使用JSON模式来简单地告诉您,我不知道这个想法@fgese。Java中有一个JSON模式库,是我编写的,但是它使用Jackson,而不是org.JSON…您可以为单个键和值对回答训练。它不适合多个键和值对这段代码k。如何为每个键返回消息。您应该验证我的答案;)
true
false
The mandatory field taskid is not defined !
The mandatory field taskName is not defined !