1

私は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コードに渡します。

文字列のようなPythondictをJavaハッシュマップまたは同等のものに解析して簡単にトラバーサルできるJavaライブラリはありますか?

解決:

jsonソリューションは機能しました。Pythonでsimplejsonを使用して、dictをjson形式とjavagsonライブラリに変換しました。これが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);
    }
}
4

1 に答える 1

1

私はそれを試しましたがjava -dname="TheAboveString"、System.getProperty( "name")のようなことをして取得しているため、整形式のjsonを渡すことができません。–kmad15分前

...そしてなぜそれをシステムプロパティとして渡すのですか?

JSONをパイプしてecho "TheAboveString" | java、stdinからJSONパーサーにダンプするだけです。これは、サブプロセスモジュールを使用すると、少し簡単で安全になります。

于 2013-02-26T00:33:50.397 に答える