将数据文件JSON读取到JAVA

将数据文件JSON读取到JAVA,java,json,Java,Json,我对JSON有问题;我无法从portblock读取文件,但webblock可以完成 这是test.json { "webblock" : ["www.google.com", "www.youtube.com", "www.facebook.com"], "portblock" : [{ "key" : "80", "value" : "tcp" }, { "key" : "70",

我对JSON有问题;我无法从
portblock
读取文件,但
webblock
可以完成

这是
test.json

{
    "webblock" : ["www.google.com", "www.youtube.com", "www.facebook.com"],
    "portblock" : [{
            "key" : "80",
            "value" : "tcp"
        }, {
            "key" : "70",
            "value" : "udp"
        }
    ]
}
这是我使用的代码显示
webblock

JSONArray msg = (JSONArray) jsonObject.get("webblock");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
    block_web(iterator.next());
}
JSONArray msg=(JSONArray)jsonObject.get(“webblock”);
迭代器迭代器=msg.Iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
block_web(iterator.next());
}

帮助我显示
portblock的键和值

看一看。此代码应适用于:

JSONArray msg = (JSONArray) jsonObject.get("webblock");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
    block_web(iterator.next());
}
  • 创建Pojo

    public class DomainName {
    
         List<String> webblock;
         List<PortBlock> portblock;
         //getter and setters
    }
    
    public class PortBlock{
         Integer port;
         String value;
         //getter and setters
    }
    

  • 那么到底是什么问题呢?在循环中调用了两次
    next()
    ,这意味着每次调用都会得到单独的值。将
    next()
    的结果存储在字符串变量中,并使用它代替
    iterator.next()