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