如何解析键值对,我知道这是由LinkedTreeMap的toString()方法(在一些无法访问的代码中)的结果到 LinkedTreeMap<字符串,对象> ?
我要转换为的示例字符串: LinkedTreeMap< String,Object>
{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}}
如果我能将其转换为 JSON
,我也会很高兴答案 0 :(得分:2)
您可以将toString()
值转换为JSON
格式:
String toStringValue = "{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}}";
String jsonValue = toStringValue.replace("{","{\").replaceAll(",\\s+","\", \"").replace("=","\":\"").replace("}","\"}");
然后任何json
解析器都可以解析此字符串。
答案 1 :(得分:-1)
我不确定你到底想要什么。但我认为你可以使用像new JSONObject(map);
这样的东西。如果没有帮助,请详细说明一些输入和输出
答案 2 :(得分:-1)
我发现这个方法可以递归地将键值字符串转换为JSON:
public static JSONObject convertKeyValueToJSON(LinkedTreeMap<String, Object> ltm) {
JSONObject jo=new JSONObject();
Object[] objs = ltm.entrySet().toArray();
for (int l=0;l<objs.length;l++)
{
Map.Entry o= (Map.Entry) objs[l];
try {
if (o.getValue() instanceof LinkedTreeMap)
jo.put(o.getKey().toString(),convertKeyValueToJSON((LinkedTreeMap<String, Object>) o.getValue()));
else
jo.put(o.getKey().toString(),o.getValue());
} catch (JSONException e) {
e.printStackTrace();
}
}
return jo;
}