我收到来自JSON的两种格式字符串和数组的响应,所以我无法处理它,因为我不确定哪种格式会是
是否有任何方法可以使用java处理字符串和数组类型的响应
请提前告诉我谢谢
只需检查JSON的消息部分的数据类型,并相应地使用它。
看看这个例子。
package test;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class jsonDeco {
public static void main(String[] args) throws JSONException {
// TODO Auto-generated method stub
JSONObject a = new JSONObject("{ \"status_code\": 2002, \"sub_status_code\": 2002,"
+ " \"message\": \"Service Invoke Create Step2 Success\"} ");
JSONObject b = new JSONObject("{ \"status_code\": 7000, \"sub_status_code\": 7001,"
+ " \"message\": [ \"Step No: Step 2: Line No: 92 Variable Name: lan-pool-ipv6-mask"
+ " Error Code: 7516 Error Detail: Lan Pool IPV6 network address is invalid Description: \" ]}");
parseAORB(b);
}
public static void parseAORB(JSONObject input) throws JSONException
{
String code = input.getString("status_code");
System.out.println(code);
System.out.println(nameOf(input.get("message")));
if(nameOf(input.get("message")).equals("String"))
{
System.out.println("inside string");
String message = input.getString("message");
System.out.println("Message is : "+message);
}
else if (nameOf(input.get("message")).equals("JSONArray"))
{
JSONArray message = input.getJSONArray("message");
System.out.println("inside jsonarray");
System.out.println("Message is : "+message.getString(0).toString());
}
}
private static String nameOf(Object o) {
return o.getClass().getSimpleName();
}
}
您可以传递变量a或b进行测试。
附言。在评论中,两个示例都是错误的。在第一个示例中,末尾有一个逗号,
额外,在第二个示例中,您没有关闭花括号}
。
我认为在这种情况下可以使用try-catch-exception。首先,尝试将响应视为字符串。如果发生错误,只需捕获错误并将响应视为数组。
Bash 支持的字符串操作数量达到了一个惊人的数目。但可惜的是,这些操作工具缺乏一个统一的核心。他们中的一些是参数代换的子集,另外一些则是 UNIX 下 expr 函数的子集。这将会导致语法前后不一致或者功能上出现重叠,更不用说那些可能导致的混乱了。 字符串长度 ${#string} expr length $string 上面两个表达式等价于C语言中的 strlen() 函数。 expr "$s
我试图让一个语句起作用,但由于某些原因,它不起作用。应该很简单。 假设字符串 我的代码是: 两种规格的结果都是1。
问题内容: 我知道问题的标题不是很清楚,对此感到抱歉,不知道如何提出。我有一个非常基本的Java实现问题,我想着重于应用程序性能,但是它也涉及Java中的String创建模式。 我了解Java中字符串的不变性概念。我不确定的是,我在某处读到以下内容不会创建两个不同的String对象: 我想知道Java是怎么做到的?它实际上是否在程序存储器中寻找一个String值并检查其是否存在,如果不存在则创建一
但是,这并不适用于String类。请参见下面的代码: 这是因为字符串类和自声明类之间的差异吗?谢谢你的帮助!
问题内容: 在执行过程中,您将json解组为结构。问题是我有一个api,可能会在请求之间更改键值的类型。 例如,可能是内联对象的对象如下: 而且还可以通过键指向对象,如下所示: 可以内联某些对象,但是可以从多个位置引用其他对象。 在javascript或python中这不是问题。只需检查类型。 解组和解析这两个对象的惯用方式是什么?是反映的唯一方法吗? 问题答案: 您可以将此JSON解组为如下结构