将多个JSON结果解析为一个文件

时间:2016-10-03 05:12:16

标签: json excel

我有一个包含300个网址的列表,这些网址以JSON格式提供查询结果。我需要获取该列表并将其解析为一个Excel可以读取并从中创建表的文件。所有结果的模式都是相同的,所以我需要的只是一个文件中每个链接的所有输出。在此先感谢!!!

2 个答案:

答案 0 :(得分:0)

下面的解决方案需要jackson-databind,jackson-core,jackson-annotaions。确保所有3个罐子的版本相同。

创建一个类,其变量类似于"键"在JSON.E.g.如果JSON是

{"name" : "test", "age" : 100}

然后课程将是:

public class User{
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age= age;
    }
}

主要方法是:

import User;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Test {    
    public static void main(String[] args) {
    ObjectMapper mapper = new ObjectMapper();
    User userObj = mapper.readValue(new URL("http://test.com"), User.class);
}

对于多个网址,创建一个User类对象列表,然后存储在excel中。

尝试链接:http://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/了解详情。

答案 1 :(得分:0)

对于JSON,您需要像上面的第一个答案一样定义Class。因此,如果JSON具有复杂的结构,定义Class也是一种压力。我建议您使用JSON的正则表达式。

String pattern = "[\\h\\v\\u005B\\u005D\\u007B\\u007D\\u002C\\u003A]*[\\u005B\\u005D\\u007B\\u007D\\u002C\\u003A][\\h\\v\\u005B\\u005D\\u007B\\u007D\\u002C\\u003A]*|"
                        // String type
                        + "(?:[\\u0022][^\\u0022]*[\\u0022])|"
                        // Numeric type
                        + "[0-9.e-]+|"
                        // Boolean type and null for numeric type
                        + "(?:(?i)true|false|null)";

您可能会怀疑上面的正则表达式是否有效,然后访问www.mysplitter.com这里(myblog)并测试您的代码(不是商业用途),整个来源(非常简单易懂)就在这里{{3} }。