EDI(Electronic Data Interchange,電子數據交換)是一種用電子信箱來傳遞商務文檔的標準格式,EDI文檔格式比較復雜,不方便處理。而在當今互聯網時代,JSON(JavaScript Object Notation,JavaScript對象標記)是一種被廣泛采用的輕量級數據交換格式,在web開發中更為方便處理。
為了使EDI文件能夠被JSON格式化,我們需要進行EDI到JSON的轉換工作。這個轉換過程可以通過代碼實現。將EDI文件解析為JSON格式,就可以用JSON API將其讀取和操作。
public static String ediToJson(String ediFile) throws Exception { EDIStreamReader streamReader = EDIInputFactory.createEDIStreamReader(new StringReader(ediFile)); StringWriter writer = new StringWriter(); JsonGenerator jsonGenerator = new JsonFactory().createGenerator(writer); jsonGenerator.writeStartObject(); while (streamReader.hasNext()) { EDIStreamEvent event = streamReader.next(); switch (event) { case START_TRANSACTION: jsonGenerator.writeFieldName("Transaction"); jsonGenerator.writeStartObject(); break; case END_TRANSACTION: jsonGenerator.writeEndObject(); break; case START_GROUP: jsonGenerator.writeFieldName("Group"); jsonGenerator.writeStartObject(); break; case END_GROUP: jsonGenerator.writeEndObject(); break; case START_LOOP: jsonGenerator.writeFieldName("Loop"); jsonGenerator.writeStartObject(); break; case END_LOOP: jsonGenerator.writeEndObject(); break; case ELEMENT_DATA: jsonGenerator.writeStringField(streamReader.getText(), streamReader.getElementText()); break; } } jsonGenerator.writeEndObject(); jsonGenerator.flush(); jsonGenerator.close(); return writer.toString(); }
上述java代碼演示了EDI到JSON的轉換示例,最終返回一個JSON格式的字符串。通過EDIStreamReader循環讀取EDI文件中的各項信息,根據EDI文件的特點,選擇不同的生成JSON對象的方式,通過JsonGenerator將JSON對象生成字符串。
EDI轉換為JSON格式,一方面方便了數據交換和數據處理,另一方面也增強了系統對第三方數據的兼容性和可擴展性。
上一篇c 去除json 斜杠
下一篇edp上傳圖片json