【发布时间】:2026-01-12 08:40:01
【问题描述】:
假设我有一个这样的字符串
[{ "name" : "Ronald" , "firstname" : "Ruck"} , { "name" : "Yunchin" , "firstname" : "Cha"} , { "name" : "Klaus" , "firstname" : "Mixer"}]
有时字符串更短/更长,重要的是开头有 [{ 和结尾 }]。我想只读取名字和名字,将名字+名字放入一个字符串,然后将每个名字+名字字符串放入一个数组中。好吧听起来很奇怪?如果我用这些名称迭代我的新数组,应该有一个输出:Ronald Ruck、Yunchin Cha、Klaus Mixer……有什么想法吗?我知道一些正则表达式,但我不擅长它。谢谢!
编辑:
是的,它看起来像一个 Json。但是,如果我使用像 http://code.google.com/p/json-simple/ 这样的 json 阅读器,我会收到一个错误:Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.simple.JSONObject 起初我认为它是因为开头有一个“[”,结尾有一个“]”。没有它,我得到:Unexpected token COMMA(,) at position 44. 所以它可能不是真正的 json?我也可以试试http://jackson.codehaus.org/,但我不确定这是否可行。
编辑2: 好的,一切都很好:) 使用 json-simple 它的工作,只需要正确使用 JSONArray。 Gson Lib的解决方案也可以,谢谢大家。
【问题讨论】:
-
看起来像 JSON。获取一个 JSON 解析器来为你做这件事! json.org/java
-
是的,就像杰克逊jackson.codehaus.org
-
@OverStack 我几乎可以保证它比尝试使用正则表达式更容易。
-
我假设您在尝试使用简单的 JSON 解析字符串时做错了。你能发布相关的代码部分吗?请注意,
JSONArray不会扩展JSONObject,因此您必须决定使用哪一个。解析器返回JSONArray,因为您有一个数组作为*元素。我假设您正在尝试将其分配给JSONObject类型的变量,这将不起作用。