问题标签 [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.
java - 在 Java 中操作 JSON 列表和映射
我正在开发一个将 JSON 类型字符串保存/检索到数据库的项目。
一切正常,即保存和更新对于类型来说是安全的String,Number and Boolean
,但是对于List and Map
,我想看看当数据在数据库中来回传输时操作 List 和 Map 的安全方法是什么,尤其是当列表中的项目变大时,即数千个项目,例如“朋友”和“关注者”列表
List
在处理 JSON或Map
Java时,我还担心潜在的数据损坏。
JSON.Simple
在不将所有内容(每个项目)加载到内存中的情况下,使用库更新 List 和 Map 的安全方法是什么?
例如,我只需要在存储在数据库中的 JSON 列表字符串中插入一 (1) 个项目。
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-simple
JSON 库,我正在查看结果 JSON 字符串中上述命令的输出。我添加了额外的调试信息以在 JSON 输出之前查看值,看起来上面的命令确实有效,但json-simple
库正在剥离转义字符。
所以,我看到的是:
所以看起来图书馆并没有像预期的那样完成它的工作。有没有使用过json-simple
的人知道解决方法?
java - 为什么我的 JSON-Simple JSONArray 会给我一个空指针异常?
我在这里关注这个教程,我的 JSON 对象几乎相同,除了我有这种格式:
这是我的相关代码:
然后我的程序关闭并从键等中获取值。或者它会但我NullPointerException
从 eclipse 中得到一个。为什么是这样?
它应该将我的.json
文件jsonObject
解包为 ,将“user”键解包为 JSONObject user
,然后将“SomeList”键解包为名为list
. 除非它这样做,否则它必须尝试将其中一个val1
或val2
放入 JSONArray 的一部分中,该部分不存在,只是指向null
. 我做了什么让这个错?
如何修复我的程序?
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"}
有两件事让我印象深刻。
- 它打印出它刚刚用缓冲读取器读取的行,并且
{
在块的开头没有它在结尾处的行。这似乎是一个严重的问题。 - 我在第 27 位读到的字符不是冒号,而是
r
所以缓冲阅读器正在吃我{
的或者解析器没有正确解析。我如何判断它是什么并解决问题?
nb 我确实有我的打印和解析行while(buff.read()!=-1)
(检查行尾)和一个检查“正则表达式” (if(!line.contains(DELETE_REGEX))
(检查无效 jsons)的 if 语句,这可能是原因吗?这是代码:
我错过了一些无关紧要的东西。
java - 如何处理 JSON-Simple 中的空值?
我正在使用 JSON-Simple 以 JSON 格式摄取推文。我将用户对象拆分为它自己的 JSONObject 类,在内存中:
然后我使用 JSON-Simple 从推文和用户对象中剥离各种字段;我在做
但事实证明,有时用户的位置设置为null
.
所以现在我正在检查我要剥离的字段是否为空,并将其设置为“”:
但是我已经在调试模式下逐步完成了eclipse,发现有人的位置设置为null,并跳过了我剥离与之关联的JSON对象字段"location"
并将其放入JSON对象字段的部分"user Location"
。我得到了一个NPE。
我的三元陈述是否没有说明这一点?虽然它会检查它是否等于 null(只有一个“空对象”它应该能够看到指针是相同的)如果它是(condtion?
是真的)它应该评估为put("location","")
否?
我哪里错了?我应该怎么做来处理这个空值?
java - 如何使用 Json-Simple 从 JSON 解析到 Map 并保留键顺序
我正在使用 Json-Simple 使用 Json-Simple lib 编写配置文件,但在将 json 字符串转换为映射时遇到问题。
调试我发现 parse 方法返回一个 Map 对象!但是当我尝试直接转换为 LinkedMap 时,我得到一个 ClassCastException:
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 小时:
感谢朋友的帮助和一些摆弄,我找到了一个解决方案,我敢肯定这不是最有说服力的,但这正是我所追求的:
感谢您的帮助和建议。
google-app-engine - 使用 AppEngine 存储 JSON 文档
我正在尝试使用 Objectify 作为持久层将 JSON 文档存储到 AppEngine 数据存储中。为了能够查询文档值,而不是仅仅将整个文档作为String
字段插入,我创建了一个MapEntity
如下所示的:
因为最终当“展开”时 JSON 文档中的每个键值都可以用 Map 表示
例子:
我将地图字段存储在数据存储中:
如果我使用我的parse()
方法:
使用 JSON.Simple 库解析 JSON 文档,然后进行递归解析:
我的应用程序是这样工作的:
我遇到的问题是:
- 我不能使用“。” Map 键字段中的点,所以我必须使用“-”
- 我存储 JSON 文档的方法也不是很有效
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 以使其工作?
java - 从 json 文件中打印值
我正在使用以下代码从文件中获取 JSON 数据,目前我能够在一个字符串中实现 JSON。我想将其解析为数组。json文件是这样的:
我正在使用以下代码来获取数据,但我在一个字符串中获取它并且我想打印一些数据
这是输出
这里entry.getValue() 是返回数组的一个连接字符串,while 只运行一次......但我想循环它以获取键值。我该怎么做?例如,如果我想在22 岁时打印姓名 alex,我应该怎么做?
注意:文件可以更改,所以我不知道键(现在它的名称,但可以是 firstName 和我需要通用解决方案的任何其他字段)。
如果有办法使用不同的解析器可以做到这一点,我打开了。