Java 将字符串解析为LinkedTreeMap<;字符串,对象>;

Java 将字符串解析为LinkedTreeMap<;字符串,对象>;,java,android,json,gson,Java,Android,Json,Gson,如何将一个键值对解析为一个LinkedTreeMap的toString()方法的结果(在一些不可访问的代码中)到一个LinkedTreeMap 我要转换为的示例字符串:LinkedTreeMap 如果我能将它转换成JSON,我也会很高兴。我不知道你到底想要什么。但是我认为您可以使用像这样的newjsonobject(map)。如果这没有帮助,请使用一些输入和输出进行详细说明。您可以将toString()值转换为JSON格式: String toStringValue = "{Path=z.jpg

如何将一个键值对解析为一个LinkedTreeMap的toString()方法的结果(在一些不可访问的代码中)到一个LinkedTreeMap

我要转换为的示例字符串:LinkedTreeMap


如果我能将它转换成JSON,我也会很高兴。我不知道你到底想要什么。但是我认为您可以使用像这样的
newjsonobject(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 convertKeyValueToJSON(LinkedTreeMap ltm){
JSONObject jo=新的JSONObject();
Object[]objs=ltm.entrySet().toArray();

for(int l=0;lJSONObject无法分析此键值字符串。
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;
    }