Java 将大JSON文件转换为XML

Java 将大JSON文件转换为XML,java,json,xml,string,buffer,Java,Json,Xml,String,Buffer,我正在尝试使用转换字符串的json.org库将json文件转换为xml。然而,我有一个大文件,我不能存储在缓存中,所以我想在转换时写入。有人知道我该怎么做吗 到目前为止: BufferedReader br = new BufferedReader(new FileReader(FILE_NAME)); private String line; while((line=br.readLine())!=null){ JSONObject json = new JSONObject(line

我正在尝试使用转换字符串的json.org库将json文件转换为xml。然而,我有一个大文件,我不能存储在缓存中,所以我想在转换时写入。有人知道我该怎么做吗

到目前为止:

BufferedReader br = new BufferedReader(new FileReader(FILE_NAME));
private String line;
while((line=br.readLine())!=null){
    JSONObject json = new JSONObject(line));
    String xml = XML.toString(json);
    // Write on OUTPUT_FILE_NAME
}

如果您没有绑定到
json.org
,您可以尝试在中使用和json-to-xml支持的低级别流


该文件是一个大json对象,还是一大堆小对象?一个大json文件(3gb)@ParrisVarney您可以删除第一个和最后一个花括号,将子对象逐个读取到内存中,构建xml,然后将所有内容粘贴到一起吗?@ParrisVarney,谢谢!实际上我该怎么做?这难道不能将所有数据存储在缓存中吗?我想你可以编写一个解析器,当它找到一个完整的子对象时,一个字节一个字节地读取你的文件,并写入几个小文件。您可以使用类似于对象层次结构的目录结构。
    JsonFactory jf = new JsonFactory();
    JsonParser jp = jf.createParser(...);

    XmlFactory xf = new XmlFactory();
    JsonGenerator xg = xf.createGenerator(...);

    xg.writeFieldName("root"); // need a root element

    JsonToken t = null;
    while((t = jp.nextToken()) != null) {
        switch(t) {
        case START_OBJECT:
            xg.writeStartObject();
            break;
        case END_OBJECT:
            xg.writeEndObject();
            break;
        case START_ARRAY:
            xg.writeStartArray();
            break;
        case END_ARRAY:
            xg.writeEndArray();
            break;
        case FIELD_NAME:
            xg.writeFieldName(jp.getCurrentName());
            break;
        case VALUE_STRING:
            xg.writeString(jp.getText());
            break;
        case VALUE_FALSE:
            xg.writeBoolean(false);
            break;
        case VALUE_TRUE:
            xg.writeBoolean(true);
            break;
        // some tokens missing here
        }
    }