将python dict转换为java hashmap

时间:2013-02-26 00:13:36

标签: java python text-parsing

我正在开发一个项目,它有一个围绕java代码的python包装器。 因此,python和java代码之间存在通信。 (我知道jython,但我们希望将每个实现分开。)

要从python到java,我们传递一个像

这样的字符串
{
    "1-1": {
        "Max Capacity (MB)": "393216",
        "Current Capacity (MB)": "24576",
        "Max Devices": "12",
        "Populated": "12"
    },
    "1-3": {
        "Max Capacity (MB)": "262144",
        "Current Capacity (MB)": "8192",
        "Max Devices": "32",
        "Populated": "2"
    },
    "1-2": {
        "Max Capacity (MB)": "393216",
        "Current Capacity (MB)": "4096",
        "Max Devices": "12",
        "Populated": "1"
    }
}

这是python中的一个字典,我们将字符串传递给java代码。

java中是否有一个库将python dict解析为java哈希映射或等效的python dict以便于遍历?

解决方案:

json解决方案有效。在python中使用simplejson将dict转换为json格式 和java gson库。这是java部分:

import java.util.Map;
import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class ReadFromJson {
    public static void main(String args[]) {
        Type mapOfStringObjectType = new TypeToken<Map<String, Map<String,String>>>() {}.getType();
        Gson gson = new Gson();
        Map<String, Map<String,String>> obj = gson.fromJson(jsonStringToBeRead, mapOfStringObjectType);
        System.out.println(obj);
    }
}

1 个答案:

答案 0 :(得分:1)

  

我试过了,但是我正在做类似java -dname="TheAboveString"的事情,并通过System.getProperty(“name”)重新审阅它,所以无法传递一个格式良好的json .. - kmad 15分钟前

...为什么要将它作为系统属性传递?

只需管道JSON echo "TheAboveString" | java并将其从stdin转储到JSON解析器。使用subprocess模块,这应该更容易一些,并且 更安全。