将字符串解析为LinkedTreeMap <string,object =“”> </string,>

时间:2015-02-09 06:56:14

标签: java android json gson

如何解析键值对,我知道这是由LinkedTreeMap的toString()方法(在一些无法访问的代码中)的结果到 LinkedTreeMap&lt;字符串,对象&gt;

我要转换为的示例字符串: LinkedTreeMap&lt; String,Object&gt;

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

如果我能将其转换为 JSON

,我也会很高兴

3 个答案:

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