I'm trying to convert a json-file to xml using json.org library which converts strings. However I've a big file that I can't store in cache so I want to write as I convert. Anyone have any ideas of how I should go about?
So far:
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
}
答案 0 :(得分:1)
如果您不依赖于json.org
,您可以随时使用Jackson和jackson-dataformat-xml中的json到xml支持来尝试低级别流媒体。
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
}
}