使用json.simple动态获取对象列表

时间:2016-05-18 15:08:31

标签: java json

在搜索并尝试许多例子之后询问。 我正在尝试从json动态获取值列表以便插入到数组中。

json看起来像:

{
"Test_name":"mft",
"parameters":[ 
{
"Remotehost":"vl-tlv-ctm-qa22",
"Ftptype":"sftp",
"file_name":"blabla.txt"
}
]
}

我正在使用以下代码:

JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("c:/temp/test.txt"));
JSONObject jsonObject = (JSONObject) obj;
String testname = (String) jsonObject.get("Test_name");
System.out.println(testname)
JSONArray msg = (JSONArray) jsonObject.get("parameters");
Iterator<JSONObject> iterator = msg.iterator();
while (iterator.hasNext()) {
JSONObject factObj = (JSONObject) iterator.next();
System.out.println(factObj);

输出是:

mft
{"Remotehost":"vl-tlv-ctm-qa22","file_name":"blabla.txt","Ftptype":"sftp"}

我如何打破嵌套中的对,以便我可以使用as变量而不是单行?

谢谢, 琐

1 个答案:

答案 0 :(得分:2)

您可以从JSONObject获取对,作为键值对,如下所示:

        while (iterator.hasNext()) {
            JSONObject factObj = (JSONObject) iterator.next();
            for (Object key : factObj.keySet()) {
                System.out.println(key+":"+factObj.get(key));
            }
        }