java - 如何从字符串生成器中提取 json 对象?
问题描述
我有以下形式的字符串生成器:
[{"abc" : ["something1", "something2"]}, {"def" : ["something3", "something4"]}]
如何转换它以便我可以在键上执行 get ?例如:object.get("abc") 我得到了列表。
我四处寻找解决方案:
我试着做:
JSONObject jsonObject = new JSONObject(sb.toString());
我得到以下异常:
exception org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
然后我尝试获取 Json 的子字符串,如下所示:
JSONObject jsonObject = new JSONObject(sb.toString().substring(1, sb.toString().length()-1));
回馈:
jsonObjwct {"Z-DwY2Ul":["Worried Blues","Worried Blues"]}
我只得到第一个对象,我需要所有对象。
我可以做哪些修改来获取特定键的列表?
解决方案
它是一个JSONArray
of JSONObject
,所以先转换成JSONArray
JSONArray array = new JSONArray(sb.toString());
然后您可以使用for
循环进行迭代
for (int i = 0, size = array.length(); i++) {
JSONObject obj = array.optJSONObject(i); //{"abc" : ["something1", "something2"]}
}
推荐阅读
- java - 存储一个变量,以便下次访问该类时它是相同的
- sql - 想根据星期五做一个条件
- android - Volley to Room SQLite 与现有的主键
- bash - 如何使用 docker-compose 为非 root 用户设置环境变量?
- reactive-programming - 如何以非常通用的方式将有效负载响应式发送到 Kafka 主题?
- digital-signature - HSM nCipher:具有仲裁 m/n 的 OCS 保护密钥
- ruby-on-rails - 如何从 Rails 中的编辑操作中临时保存参数?
- sql-server - 如何在 Linux 上为 BCP 配置 SqlServer?
- php - xdebug 未显示在 `php -m` 的输出中,但显示在 phpinfo
- python - Python - sys.stdout.buffer.write 太慢 - 视频到 ascii