java - 如何在 Java/Android 中将其转换为 Json?
问题描述
我想将这个我不知道它叫什么的转换为 Json。你能帮助我吗?
[{key1=value1,key2=value2,key3=value3}]
结果必须是这样的:
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
解决方案
假设这是一个Map
对象的内容,您可以使用Gson将 Java 对象(包括自定义对象)转换为 JSON,并将 JSON 转换回对象。看起来像这样:
Gson gson = new Gson();
String json = gson.toJson(YOUR_MAP);
回到地图:
Gson gson = new Gson();
Type type = new TypeToken<Map<KEY_TYPE, VALUE_TYPE>>(){}.getType();
Map YOUR_MAP = gson.fromJson(JSON, type);
如果这不是一个Map
,只是一个奇怪的字符串,想成为一个Map
但不能完全做到,你可以通过以下方式格式化字符串:
substring(int start, int end)
使用方法去除两端的两组括号- 使用逗号和等号分隔条目
split(",|=")
String
用引号重新组装JSON
String JSON = "{ \"" + arrayFromOriginalString[1] + "\":\"", arrayFromOriginalString[2]...
假设源字符串始终具有相同数量的条目如果源总是不同,您可以使用
for
循环并增加 2String json = "{"; for(int i = 0; i < YOUR_ARRAY.length; i += 2;) { json += "\"" + YOUR_ARRAY[i] + "\":\"" + YOUR_ARRAY[i + 1] + "\""; //Some kind of if condition to decide if a comma is required (Last entry) } json += "}";
推荐阅读
- python - SQLAlchemy - 使用事件侦听器更改 FromClause 中的表名
- tensorflow - 初始化 ttpu 时出现 InvalidArgumentError
- html - 尝试增加 Div 高度时,它不起作用。帮助表示赞赏
- c# - 抽象基类列表仅返回基类的属性
- core-data - 如何在使用 MVVM 的同时使用 SwiftUI 实现核心数据关系
- javascript - 如何使用 Jest 单元测试触发 transitionend
- database - 数据库如何提供原子性?
- node.js - 不和谐.js | 图片分离/非嵌入
- r - 有条件地向列添加 12 小时
- sql - 使用显式值进行 BigQuery 合并