问题标签 [json-simple]

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 投票
1 回答
503 浏览

java - 在 Java 中操作 JSON 列表和映射

我正在开发一个将 JSON 类型字符串保存/检索到数据库的项目。

一切正常,即保存和更新对于类型来说是安全的String,Number and Boolean,但是对于List and Map,我想看看当数据在数据库中来回传输时操作 List 和 Map 的安全方法是什么,尤其是当列表中的项目变大时,即数千个项目,例如“朋友”和“关注者”列表

List在处理 JSON或MapJava时,我还担心潜在的数据损坏。

JSON.Simple在不将所有内容(每个项目)加载到内存中的情况下,使用库更新 List 和 Map 的安全方法是什么?

例如,我只需要在存储在数据库中的 JSON 列表字符串中插入一 (1) 个项目。

0 投票
1 回答
2751 浏览

java - Java 1.4 String.replaceAll 单引号问题

我有一个来自必须放入 JSON 的数据库的字符串值,但该值可以包含单引号和双引号。听起来很容易,对吧?好吧,显然不在 Java 1.4.2 中。不要让我开始为什么它必须是 1.4.2,我从另一个开发人员那里继承了这个,由于我无法控制的因素,我们还不能更新这个项目。:)

所以,我已经尝试了所有这些(还有很多其他的只是为了看看结果):

我想要的只是sample user\'s string,我做错了什么?太糟糕了 1.4.2 没有 String.replace(String,String) 函数。

编辑:我们正在使用json-simpleJSON 库,我正在查看结果 JSON 字符串中上述命令的输出。我添加了额外的调试信息以在 JSON 输出之前查看值,看起来上面的命令确实有效,但json-simple库正在剥离转义字符。

所以,我看到的是:

所以看起来图书馆并没有像预期的那样完成它的工作。有没有使用过json-simple的人知道解决方法?

0 投票
2 回答
1893 浏览

java - 为什么我的 JSON-Simple JSONArray 会给我一个空指针异常?

我在这里关注这个教程,我的 JSON 对象几乎相同,除了我有这种格式:

这是我的相关代码:

然后我的程序关闭并从键等中获取值。或者它会但我NullPointerException从 eclipse 中得到一个。为什么是这样?

它应该将我的.json文件jsonObject解包为 ,将“user”键解包为 JSONObject user,然后将“SomeList”键解包为名为list. 除非它这样做,否则它必须尝试将其中一个val1val2放入 JSONArray 的一部分中,该部分不存在,只是指向null. 我做了什么让这个错?

如何修复我的程序?

0 投票
1 回答
1899 浏览

json - 为什么 JSON-Simple 解析器在 Java 中不期望冒号?

我正在使用 JSON-Simple 解析来自 Twitter 的 JSON 块。我遇到了一个异常:

Exception in thread "main" Unexpected token COLON(:) at position 27
...stack trace...

由于 JavaScript 解析 JSON 的方式有一些特殊性,我在 SO 上看到过类似的东西(我认为 JSONJ-P 需要接收它填充),但这里不是这种情况,因为我不在 JS 中!

这是我的 JSON(已清理):

{"in_reply_to_status_id_str":null,"id_str":"23475129874512857","text":"RT @SanitizedPersonName: SomeTextIveSanitized @SanatizedTwitterHandle SomeMoreText http:\/\/t.co\/sanitized SomeText (MoreText) \/ Text", "restOfTheJson":"Is not Special"}

有两件事让我印象深刻。

  1. 它打印出它刚刚用缓冲读取器读取的行,并且{在块的开头没有它在结尾处的行。这似乎是一个严重的问题。
  2. 我在第 27 位读到的字符不是冒号,而是r

所以缓冲阅读器正在吃我{的或者解析器没有正确解析。我如何判断它是什么并解决问题?

nb 我确实有我的打印和解析行while(buff.read()!=-1)(检查行尾)和一个检查“正则表达式” (if(!line.contains(DELETE_REGEX))(检查无效 jsons)的 if 语句,这可能是原因吗?这是代码:

我错过了一些无关紧要的东西。

0 投票
2 回答
8575 浏览

java - 如何处理 JSON-Simple 中的空值?

我正在使用 JSON-Simple 以 JSON 格式摄取推文。我将用户对象拆分为它自己的 JSONObject 类,在内存中:

然后我使用 JSON-Simple 从推文和用户对象中剥离各种字段;我在做

但事实证明,有时用户的位置设置为null.

所以现在我正在检查我要剥离的字段是否为空,并将其设置为“”:

但是我已经在调试模式下逐步完成了eclipse,发现有人的位置设置为null,并跳过了我剥离与之关联的JSON对象字段"location"并将其放入JSON对象字段的部分"user Location"。我得到了一个N​​PE。

我的三元陈述是否没有说明这一点?虽然它会检查它是否等于 null(只有一个“空对象”它应该能够看到指针是相同的)如果它是(condtion?是真的)它应该评估为put("location","")否?

我哪里错了?我应该怎么做来处理这个空值?

0 投票
1 回答
12718 浏览

java - 如何使用 Json-Simple 从 JSON 解析到 Map 并保留键顺序

我正在使用 Json-Simple 使用 Json-Simple lib 编写配置文件,但在将 json 字符串转换为映射时遇到问题。

调试我发现 parse 方法返回一个 Map 对象!但是当我尝试直接转换为 LinkedMap 时,我得到一个 ClassCastException:

0 投票
4 回答
24459 浏览

java - 将 JSONObject 转换为 List 或 JSONArray 的简单代码?

我已经阅读了各种线程并发现了类似的问题,但是在为我的特定问题找到解决方案方面非常不成功。

回报:

orr 中的数据 = {"470":[{"locationId":2,"quantity":1,"productId":1007}],"471":[{"locationId":2,"quantity":1," productId":1008}]}orr 的类型 = 类 org.json.simple.JSONObject

我正在尝试将这些数据放入一个数组/列表/任何我可以使用键 470,471 来检索数据的地方。

任何建议或指示非常感谢非常感谢...

澄清:

这就是我所追求的,但显然我不能做 orr.get("471") 因为我不知道这个数字是多少。

编辑:显然我不能回答我自己的问题 8 小时:

感谢朋友的帮助和一些摆弄,我找到了一个解决方案,我敢肯定这不是最有说服力的,但这正是我所追求的:

感谢您的帮助和建议。

0 投票
2 回答
1642 浏览

google-app-engine - 使用 AppEngine 存储 JSON 文档

我正在尝试使用 Objectify 作为持久层将 JSON 文档存储到 AppEngine 数据存储中。为了能够查询文档值,而不是仅仅将整个文档作为String字段插入,我创建了一个MapEntity如下所示的:

因为最终当“展开”时 JSON 文档中的每个键值都可以用 Map 表示

例子:

我将地图字段存储在数据存储中:

如果我使用我的parse()方法:

使用 JSON.Simple 库解析 JSON 文档,然后进行递归解析:

我的应用程序是这样工作的:

我遇到的问题是:

  • 我不能使用“。” Map 键字段中的点,所以我必须使用“-”
  • 我存储 JSON 文档的方法也不是很有效
0 投票
1 回答
8492 浏览

json-simple - 错误:包 org.json.simple 不存在

我正在尝试以 JSON 格式解析 FourSqure.com 的返回值。我在 Google 上下载 json-simple-1.1.1.jar 并将其放在 lib 文件夹中:“C:\Java\jdk1.7.0\lib”,我的 Java 文件位于此文件夹中:“C:\Java\jdk1 .7.0\bin" 。

并编译它,它显示错误:

GetLocation.java:22:错误:包 org.json.simple 不存在导入 org.json.simple.JSONArray;^

我尝试以这种方式运行:“C:\Java\jdk1.7.0\bin\Getlocations>javac -classpath .;$C:\Java\jdk1.7.0\lib\json-simple-1.1.1.jar GetLocation.爪哇”

但是当我运行 C:\Java\jdk1.7.0\bin\Getlocations>javac GetLocation.java

它仍然显示此错误:

如何设置 json-simple-1.1.1.jar 文件的 Classpath 以使其工作?

0 投票
2 回答
2257 浏览

java - 从 json 文件中打印值

我正在使用以下代码从文件中获取 JSON 数据,目前我能够在一个字符串中实现 JSON。我想将其解析为数组。json文件是这样的:

我正在使用以下代码来获取数据,但我在一个字符串中获取它并且我想打印一些数据

这是输出

这里entry.getValue() 是返回数组的一个连接字符串,while 只运行一次......但我想循环它以获取键值。我该怎么做?例如,如果我想在22 岁时打印姓名 alex,我应该怎么做?

注意:文件可以更改,所以我不知道键(现在它的名称,但可以是 firstName 和我需要通用解决方案的任何其他字段)。

如果有办法使用不同的解析器可以做到这一点,我打开了。