问题标签 [org.json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
731 浏览

java - 避免在 Java 中使用相同的 try catch 块

我正在开发一个项目,该项目涉及使用JSON API在 Java 中进行 JSON 操作。有很多地方我需要从 JSON 文件中读取值。API 提供了相同的检查异常。每次我使用 API 读取 JSON 值时,我都被迫编写 try catch 块。结果,有大量的try catch块。它使代码看起来很混乱。

有什么方法可以避免这种情况吗?单个 try catch 块是不够的,并且语句不依赖。每个读取语句都需要一个单独的 try catch 块,因为我必须在捕获异常时记录位置的详细信息。每当我有读取 JSON 数据的代码时,我是否可以调用一个通用方法,例如将代码作为参数发送给一个负责异常处理或其他方式的方法?

0 投票
2 回答
1686 浏览

java - getJSONObject 和 getJSONArray 方法的复杂性是什么?

我正在使用org.json库作为我的 Java 应用程序的 JSON 客户端,我想知道这个库中一些方法的复杂性。

我正在通过它的 HTTP API 从数据库中检索另一个 JSON 对象(等等)内的 JSON 数组中的数千个 JSON 对象。作为一个例子(并且仅作为一个例子,我的情况要复杂得多),假设我正在做这样的事情:

org.json库的复杂性getJSONObject(int)getJSONArray(String)方法是什么?它是以恒定 [O(1)] 还是线性 [O(n)] 时间运行的?如果没有,正确答案是什么?

0 投票
1 回答
1178 浏览

java - 如何在解析 JSON 字符串时限制内存使用?

java.lang.OutOfMemoryError打电话时如何排除

我正在使用 JSON 解析器的 org.json 实现。

我不是在寻找一种方法来解码坏的 JSON 字符串。我只想对内存使用量(可能还有 CPU 使用量)设置一个上限,并且可能会得到一个我可以从中恢复的异常。

或者,是否可以肯定地说,解析时的内存使用量与输入字符串长度相比永远不会超过某个比例?然后我可以限制它。

或者是否有提供该功能的替代库?

0 投票
1 回答
8056 浏览

java - 比较两个 JSONObject

我在比较两个JSONObjects. 我目前的比较方法如下:

但是,这很慢。我似乎找不到任何其他方法来正确比较两个 JSONObjects。o1.hashCode()并且o2.hashCode()可以不同,而字符串是相同的。遍历每个元素并单独比较它们似乎也非常缓慢。

有什么方法可以更快地比较两个 JSONObjects?

这个问题专门关于http://json.org/提供的 org.json 的使用。我真的想避免使用任何其他库,例如比较 Java 中的两个 JSON 对象中提到的库,因为该库对应用程序的某些部分至关重要。

0 投票
2 回答
1212 浏览

java - 不要使用android内置的org.json

我编写了一个使用org.json来自 json.org 的 (A) 的库,假设 Android 使用了相同的库(在 android 中它也称为org.json(B),只是它缺少一些相对关键的功能)。现在我想做的是设置我的 gradle,以便我的项目使用org.json(A) 而不是org.json(B)。我尝试将以下内容添加到我的 app.gradle:

但是,这似乎不起作用。我仍然可以使用 Android org.json(B),并且在键入new JSONObject()时仍然使用 Android 的实现。我该如何解决这个问题?

0 投票
0 回答
212 浏览

java - 将 POJO 解析为 JSON 对象

我必须将 POJO 转换为 JSON 对象,但我遇到了问题。我的 POJO 有四个变量及其 getter 和 setter。

private String RouteCoord; private String RouteName; private String freqArray; private Double AvgTime;

我已经声明了一个对象列表

我运行一个 for 循环,在其中创建 POJO 类的实例并将它们添加到已声明的列表 (listOfKPIsObjects)

然后是另一个 for 循环来制作嵌套的 JSON 对象

我返回已处理的Json。问题是结果缺少 POJO 类的变量 (String freqArray) 之一。

{"journey_1":{"avgTime":12.283334,"routeCoord":"435,345-789,1011","routeName":"tty-keskustori"},"journey_2":{"avgTime":12.283334,"routeCoord": "123,456-789,1011","routeName":"hervanta-tty"},"journey_3":{"avgTime":12.283334,"routeCoord":"123,456-789,1011","routeName":"kaleva-keskustori "}}

我尝试将类的变量作为字符串传递,它可以工作,它还表明字符串freqArray不为空。

这样做会消除从 POJO 映射到 JSON 对象的想法,反之亦然,并且不方便。

任何想法我在这里可能做错了什么。我正在使用 org.json。

0 投票
3 回答
1329 浏览

java - 通过 org.json 到 ArrayList 的字符串

我有这个字符串 "["a,rt", "der", "a_rt5%"]" ,想把它转换成ArrayList<String>. 有没有办法通过 org.json 做到这一点,如果没有,以任何其他方式?

0 投票
0 回答
730 浏览

java - Json 字符串无法解析或 JSONObject 无效

在发布之前,我已经在 StackOverflow 上搜索并尝试了所有示例。似乎没有任何效果,所以希望有人可以对正在发生的事情有所了解。

我有一个从 UTF-8 格式的 WCF 服务返回的 json。当数据返回时,我对数据进行按摩以删除 '\n' (由 BufferedReader 附加到 StringBuilder 引起)和反斜杠(如果它们存在并留下此字符串):

我已经尝试了所有主要的 json 解析器来让它工作:gson、json-simple、json-lib、minimal-json。所有结果都相同“无法转换为 JSONObject”或“不是有效数组”或“无效值”等。

一个确切的 org.json 异常:

即使异常是 typeMismatch 我检查以确保字段名称及其各自的数据类型相同。

但是,在所有这些情况下,如果我复制字符串并将其放入字符串变量 String json = "{\"BattleList\":[{\"LiveID\":1,\"BattleID\":1,\ "OvxyzID\":1234,\"ChallengerID\":1,\"OpponentID\":2,\"ChallengerName\":\"Tank1\",\"OpponentName\":\"Tank2\",\"TimeChallenged \":\"12-6-2015\",\"IsActive\":1,\"TimeEnded\":\"0001-01-01T00:00:00\"}]}"

org.json 能够从变量中创建一个有效的对象,但是将它与我​​的“结果”变量相匹配。它是相同的。

我已经在线访问了 json 验证器并使用了我的 Notepad++ json 插件,并且我的返回结果是有效的。

使用 Gson,我创建了一个自定义反序列化器,我发现有趣的是我的返回结果 JsonElement 只获取'{'并引发异常。当我使用 String 变量时,JsonElement 会获取整个字符串。

以下是我尝试反序列化的不同方法。如果信息太多且不需要,我深表歉意。

我的 BattleList 课程:

}

我的战斗课:

我不确定这里还包括什么,如果需要更多,我会修改问题。

基本上,我做错了什么?应该很简单,但它让我被屏蔽了一个多星期。

谢谢。

0 投票
0 回答
514 浏览

android - Android XML 到 JSON 错误 org.json 错误:java.lang.NoSuchMethodError: org.json.XMLTokener.end

我在Android development转换XML to JSON其中包括时遇到此错误CDATA tag。它在正常情况下工作正常Java

我用过Library

org.json.

我得到了这种类型的Error.

XML 有两种类型tags,如下所示:

0 投票
2 回答
7539 浏览

java - jsonArray.length() 没有给出正确的数组元素数量

我正在使用 org.json 解析器。我正在使用 json 数组jsonObject.getJSONArray(key)。问题是jsonArray.length()返回我1,我的 json 数组有 2 个元素,我做错了什么?

这是我的json: