2015-02-09 99 views
2

如何可以解析一个键值对我知道是)的toString的结果(LinkedTreeMap的方法(它在一些不可访问代码)到LinkedTreeMap <字符串,对象>解析字符串LinkedTreeMap <字符串,对象>

样品字符串,我想转换为:LinkedTreeMap <字符串,对象>

{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}} 

此外,我会很高兴,如果我可以把它转换JSON

回答

-1

我不敢肯定你究竟想要什么。但我认为你可以使用这样的事情。也new JSONObject(map);请一些输入和输出的详细说明,如果这不利于

+0

的JSONObject不能分析此键值字符串。 – AVEbrahimi 2015-02-09 07:04:06

2

您可以将您toString()JSON格式:

String toStringValue = "{Path=z.jpg.json, ImageProperties={Owner=Jack, ImageQuality=6}}"; 
String jsonValue = toStringValue.replace("{","{\").replaceAll(",\\s+","\", \"").replace("=","\":\"").replace("}","\"}"); 

,然后这个字符串可以被任何json解析器解析。

-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; 
    }