从 JSON 中检索 java 中的字符串列表

Retrieve a list of strings from JSON in java

我们无法从 JSON 消息中获取消息。我们对响应的格式感到很困惑,因为我们收到的列表键是空的,但这不是我们可以改变的。这是来自后端 API 的响应,它会在出现问题时发送错误消息。

这是 JSON 字符串。我们要提取到一个简单的字符串是 "Passwords must be at least 6 characters."

{
  "message": "The request is invalid.",
  "modelState": {
    "": [
      "Passwords must be at least 6 characters."
    ]
  }
}

我们尝试的是在 here and here 上发现的一些东西,但没有成功。

现在我们完全不知道如何从 JSON 消息中获取那个字符串,因此我们非常感谢任何帮助。

此致,CptSeasick

您可以通过

访问它
object.modelstate[""]

您的 modelState 对象的字符串名为“”。我的意思是空字符串。

如果您可以像下面这样更改它的名称:

{
  "message": "The request is invalid.",
  "modelState": {
    "errorMessage": [
      "Passwords must be at least 6 characters."
    ]
  }
}  

并像这样访问您的对象:

myJSONobject.getJSONObject("modelState").getJSONArray("errorMessage").getString(0);

或者试试看:

myJSONobject.getJSONObject("modelState").getJSONArray("").getString(0);

你可以这样做:

package com.Whosebug.answer;

import org.json.JSONObject;

public class JsonTest {

    public static void main(String[] args) {
        String response = "{ \"message\": \"The request is invalid.\", \"modelState\": { \"\": [ \"Passwords must be at least 6 characters.\"]}}";
        JSONObject jsonObject = new JSONObject(response);
        String errorMessage = jsonObject.getJSONObject("modelState").getJSONArray("").getString(0);
        System.out.println(errorMessage);
    }

}