解析字符串LinkedTreeMap <字符串,对象>
问题描述:
如何可以解析一个键值对我知道是)的toString的结果(LinkedTreeMap的方法(它在一些不可访问代码)到LinkedTreeMap <字符串,对象>?解析字符串LinkedTreeMap <字符串,对象>
样品字符串,我想转换为:LinkedTreeMap <字符串,对象>
{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}}
此外,我会很高兴,如果我可以把它转换JSON
答
我不敢肯定你究竟想要什么。但我认为你可以使用这样的事情。也new JSONObject(map);
请一些输入和输出的详细说明,如果这不利于
答
您可以将您toString()
值JSON
格式:
String toStringValue = "{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}}";
String jsonValue = toStringValue.replace("{","{\").replaceAll(",\\s+","\", \"").replace("=","\":\"").replace("}","\"}");
,然后这个字符串可以被任何json
解析器解析。
答
我发现这个方法,其键值字符串转换为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;
}
的JSONObject不能分析此键值字符串。 – AVEbrahimi 2015-02-09 07:04:06