我们无法从JSON消息中获取消息。我们对响应的格式感到困惑,因为我们收到的列表键是空的,但这不是我们可以改变的任何内容。这是来自后端API的响应,当出现问题时会发送错误消息。
这是JSON字符串。我们想要提取到一个简单的字符串是“密码必须至少6个字符。”
{
"message": "The request is invalid.",
"modelState": {
"": [
"Passwords must be at least 6 characters."
]
}
}
我们尝试过的是在here和here上找到的一些内容,但没有取得任何成功。
现在我们完全迷失了如何从JSON消息中获取一个字符串,所以任何帮助都会受到赞赏。
问候,CptSeasick
答案 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);
}
}