从java

时间:2015-10-20 17:33:41

标签: java json string list response

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

这是JSON字符串。我们想要提取到一个简单的字符串是“密码必须至少6个字符。”

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

我们尝试过的是在herehere上找到的一些内容,但没有取得任何成功。

现在我们完全迷失了如何从JSON消息中获取一个字符串,所以任何帮助都会受到赞赏。

问候,CptSeasick

3 个答案:

答案 0 :(得分:1)

您可以通过

访问它
object.modelstate[""]

答案 1 :(得分:1)

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

如果你可以改变它的名称,如下所示:

{
  "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);

答案 2 :(得分:0)

您可以这样做:

package com.stackoverflow.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);
    }

}