当前位置: 首页 > 面试题库 >

如何检查给定对象是JSON字符串中的object还是Array

严繁
2023-03-14
问题内容

我正在从网站获取JSON字符串。我有看起来像这样的数据(JSON数组)

 myconf= {URL:[blah,blah]}

但有时这些数据可以是(JSON对象)

 myconf= {URL:{try}}

也可以是空的

 myconf= {}

我想在对象时做不同的操作,在数组时做不同的操作。到现在为止,在我的代码中,我只尝试考虑数组,所以我遇到了异常。但是我无法检查对象或数组。

我正在关注异常

    org.json.JSONException: JSONObject["URL"] is not a JSONArray.

任何人都可以建议如何解决它。在这里,我知道对象和数组是JSON对象的实例。但是我找不到可以用来检查给定实例是数组还是对象的函数。

我尝试使用此if条件,但没有成功

if ( myconf.length() == 0 ||myconf.has("URL")!=true||myconf.getJSONArray("URL").length()==0)

问题答案:

JSON对象和数组分别是JSONObject和的实例JSONArray。再加上这一事实JSONObject有一个get,将返回你的对象,你可以检查自己的类型,而无需担心ClassCastExceptions异常,并有亚去的方法

if (!json.isNull("URL"))
{
    // Note, not `getJSONArray` or any of that.
    // This will give us whatever's at "URL", regardless of its type.
    Object item = json.get("URL");

    // `instanceof` tells us whether the object can be cast to a specific type
    if (item instanceof JSONArray)
    {
        // it's an array
        JSONArray urlArray = (JSONArray) item;
        // do all kinds of JSONArray'ish things with urlArray
    }
    else
    {
        // if you know it's either an array or an object, then it's an object
        JSONObject urlObject = (JSONObject) item;
        // do objecty stuff with urlObject
    }
}
else
{
    // URL is null/undefined
    // oh noes
}


 类似资料:
  • 问题内容: 我有一个通过JSON.Stringify函数从对象转换的json字符串。 我想知道它是json字符串还是普通字符串。 是否有类似“ isJson()”的函数来检查它是否为json? 我想在使用本地存储(如下面的代码)时使用该函数。 先感谢您!! 问题答案: “简单”的方法是在失败时解析并返回未解析的字符串:

  • 问题内容: 这就是我通常做,以确定输入是一个/ -但不是。因为很多时候我偶然发现了一个错误,即一个函数错误地传递了一个对象,而目标函数确实假设这实际上是一个or 。 我的问题是:是否有更好的方法来实现这一目标? 问题答案: 仅在python 2中(不是python 3): 实际上就是您想要的,否则您会错过很多像列表一样的东西,但它们不是or的子类。

  • 问题内容: 我试图确定用户输入的内容是否包含有效或有效的内容。如果输入是an 或a,则程序应声明。 这是我的代码: 编辑:对不起,困惑的家伙。““令牌[]”是一个字符串数组。 如果用户输入make = number ( 数字 为),我试图让我的程序打印“ Invalid Make” 问题答案: 您可以编写一个函数来测试它,方法是在不喜欢它时调用并捕获(它将处理和值) 那你可以这样称呼它 而有实力的

  • 问题内容: 如何在Java中验证JSON字符串?还是可以使用正则表达式解析它? 问题答案: 一个疯狂的主意,尝试解析它并捕获异常: 该代码使用org.json JSON API实现,该实现在github,maven和部分Android上可用。

  • 问题内容: 我有一个具有几个命​​令的应用程序。当您键入某个命令时,您必须输入有关某物/某人的其他信息。现在,根据情况,信息必须严格为整数或字符串。 但是,无论您使用raw_input()在Python中键入的内容实际上是一个字符串,无论如何,更具体地讲,我很快会不加尝试地……除非查看变量是否由数字或字符组成? 问题答案: 我认为您有两种选择: 只需尝试将其转换为,但要捕获异常: except V

  • 问题内容: 好吧,这是一个复杂的问题,我完全迷失了。 假设您有一个字符串和一个通用类。像这样。 您将如何检查String是否表示该类可以相等的值。 例如,可以这样说: 如何检查字符串“ true”实际上是布尔值? 这是另一个例子。可以这样说: 如何检查字符串“ true”不是整数? 问题答案: 鉴于您只需要 Wrapper Types ,可以在此处使用一些反射技巧(为简洁起见,忽略无关代码的异常处