用java编写json文件

用java编写json文件,java,json,Java,Json,我想用java编写一个json文件,但它不起作用,我得到以下警告: 我想知道如何做到这一点,因为我将把一个选项卡式的cfg文件转换成json Type safety: The method add(Object) belongs to the raw type ArrayList. References to generic type ArrayList<E> should be parameterized 我建议您使用对象创建一个简单的ArrayList,然后使用序列化程序(使用

我想用java编写一个json文件,但它不起作用,我得到以下警告: 我想知道如何做到这一点,因为我将把一个选项卡式的cfg文件转换成json

Type safety: The method add(Object) belongs to the raw type ArrayList. References to generic type ArrayList<E> should be parameterized

我建议您使用对象创建一个简单的ArrayList,然后使用序列化程序(使用下面示例中的Jacksoin库)将它们序列化为JSON。它看起来像这样:

首先,在类中定义您的模型(为了可读性,没有进行封装):

公共类国家{
公共字符串名称;
公共整数人口;
公开名单国家;
}
然后您可以继续创建它,并填充列表:

import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JsonWriter {  

  public static void main(String[] args) {  

    Country countryObj = new Country();  
    countryObj.name = "India";
    countryObj.population = 1000000;

    List<String> listOfStates = new ArrayList<String>();  
    listOfStates.add("Madhya Pradesh");  
    listOfStates.add("Maharastra");  
    listOfStates.add("Rajasthan");  

    countryObj.states = listOfStates ;  
    ObjectMapper mapper = new ObjectMapper();

    try {  

        // Writing to a file   
        mapper.writeValue(new File("c:\\country.json"), countryObj );

    } catch (IOException e) {  
        e.printStackTrace();  
    }  

  }  
}
导入java.io.File;
导入java.io.IOException;
导入org.codehaus.jackson.jsongGenerationException;
导入org.codehaus.jackson.map.JsonMappingException;
导入org.codehaus.jackson.map.ObjectMapper;
公共类JsonWriter{
公共静态void main(字符串[]args){
Country countryObj=新国家();
countryObj.name=“印度”;
countryObj.人口=1000000;
List listOfStates=new ArrayList();
添加(“中央邦”);
添加(“马哈拉施特拉”);
添加(“拉贾斯坦邦”);
countryObj.states=州列表;
ObjectMapper mapper=新的ObjectMapper();
试试{
//写入文件
writeValue(新文件(“c:\\country.json”)、countryObj;
}捕获(IOE){
e、 printStackTrace();
}  
}  
}

请描述预期输出和实际输出。IIRC此JSON库非常旧,不支持泛型,这就是您收到此警告的原因。你可以忽略它。你的例子效果很好,因为类型安全警告指的是我会试试这个。谢谢。你有杰克逊图书馆的下载链接吗?我唯一能找到的是这个,但我没有看到下载链接:最好是将项目转换为maven项目,然后在pom.xml中将库定义为依赖项。但是,您应该能够使用jackson core库获得上述功能:我下载了这个jar,并将其添加到库中,我在下面得到了一条红线:JSONObject和JSONArrayThat's,因为它们不是我提供的解决方案的一部分。
public class Country{
  public String name;
  public Integer population;
  public List<String> states;
}
import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class JsonWriter {  

  public static void main(String[] args) {  

    Country countryObj = new Country();  
    countryObj.name = "India";
    countryObj.population = 1000000;

    List<String> listOfStates = new ArrayList<String>();  
    listOfStates.add("Madhya Pradesh");  
    listOfStates.add("Maharastra");  
    listOfStates.add("Rajasthan");  

    countryObj.states = listOfStates ;  
    ObjectMapper mapper = new ObjectMapper();

    try {  

        // Writing to a file   
        mapper.writeValue(new File("c:\\country.json"), countryObj );

    } catch (IOException e) {  
        e.printStackTrace();  
    }  

  }  
}