Có ai có bất kỳ mã Java mẫu nào để chuyển đổi tài liệu JSON sang tệp XLS/CSV không? Tôi đã cố gắng tìm kiếm trên Google nhưng không có kết quả.Chuyển đổi JSON sang XLS/CSV trong Java
Trả lời
Tài liệu JSON về cơ bản bao gồm danh sách và từ điển. Không có cách nào rõ ràng để ánh xạ một datastructure như vậy trên một bảng hai chiều.
Nếu tệp JSON là một mảng phẳng, với tất cả các đối tượng có cùng tên trường, thì nó có thể được ánh xạ tới một bảng hai chiều. Xem đầu vào ví dụ của @ Sridhar. –
bạn có thể sử dụng csv commons để chuyển đổi thành định dạng CSV. hoặc sử dụng POI để chuyển đổi thành xls. nếu bạn cần helper để chuyển đổi thành xls, bạn có thể sử dụng jxls, nó có thể chuyển đổi java bean (hoặc list) thành excel với ngôn ngữ biểu thức.
Về cơ bản, tài liệu json có thể là một mảng json, phải không? vì vậy nó sẽ giống nhau. kết quả sẽ là danh sách và bạn chỉ cần viết thuộc tính mà bạn muốn hiển thị ở định dạng excel sẽ được đọc bởi jxls. Xem http://jxls.sourceforge.net/reference/collections.html
Nếu vấn đề là json không thể đọc được trong thuộc tính excel jxls, chỉ cần tuần tự hóa nó vào bộ sưu tập đậu java trước.
Làm cách nào để bạn lập bản đồ '{'foo': {'bar': [1, 2, 3]}}' thành bảng tính? –
Đó là lý do tại sao tôi nói, nếu đối tượng json là đối tượng đơn json, không phải mảng json, kết quả sẽ là 1 hàng trong bảng tính. Nếu đối tượng json là mảng json, các hàng sẽ giống với kích thước mảng json. Và 1 lần nữa, bạn phải chỉ định thuộc tính nào bạn muốn ghi vào bảng tính đó. Nếu ví dụ của bạn, nếu bạn muốn hiển thị thanh (mà giá trị là mảng), cột sẽ được hiển thị có thể là [email protected], nhưng nó là một mảng, đúng. Nhưng nếu đối tượng là [{name: 'a', 'bar': [1,2,3]}, {name: 'b', 'bar': [2,3,4]}] và bạn muốn để chỉ hiển thị tên, nó khả thi, đúng không? – Jef
Bạn chỉ có thể chuyển đổi mảng JSON thành tệp CSV.
phép nói rằng, bạn có một JSON như sau:
{"infile": [{"field1": 11,"field2": 12,"field3": 13},
{"field1": 21,"field2": 22,"field3": 23},
{"field1": 31,"field2": 32,"field3": 33}]}
Cho phép xem mã để chuyển đổi nó sang csv:
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JSON2CSV {
public static void main(String myHelpers[]){
String jsonString = "{\"infile\": [{\"field1\": 11,\"field2\": 12,\"field3\": 13},{\"field1\": 21,\"field2\": 22,\"field3\": 23},{\"field1\": 31,\"field2\": 32,\"field3\": 33}]}";
JSONObject output;
try {
output = new JSONObject(jsonString);
JSONArray docs = output.getJSONArray("infile");
File file=new File("/tmp2/fromJSON.csv");
String csv = CDL.toString(docs);
FileUtils.writeStringToFile(file, csv);
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Bây giờ bạn có CSV được tạo ra từ JSON.
Nó sẽ giống như thế này:
field1,field2,field3
11,22,33
21,22,23
31,32,33
Các phụ thuộc maven là như thế nào,
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
Cảm ơn bạn về mã này nhưng tôi mới sử dụng Java và có vấn đề để làm cho nó hoạt động. Các biến 'jsonout' và' response' không được định nghĩa. Bất kỳ ý tưởng? Cảm ơn một lần nữa! – hhh
FileUtils.writeStringToFile (tệp, csv); không được chấp nhận –
có cách nào khác ngoài việc sử dụng org.json.CDL không? Dường như tôi không thể nhập lớp học đó vào dự án Android của tôi – keinabel
- 1. Chuyển đổi JSON sang CSV
- 2. Chuyển đổi JSON sang XML
- 3. Chuyển đổi XML sang JSON bằng R
- 4. Chuyển đổi URL sang phiên bản JSON?
- 5. Chuyển đổi JSON sang HTML Tree
- 6. Chuyển đổi base64 sang PDF trong Java
- 7. Chuyển đổi JavaScript sang Java
- 8. Chuyển đổi Java sang iOS
- 9. Chuyển đổi JSON sang mô hình thể hiện trong Django
- 10. Loại Chuyển đổi từ C sang Java
- 11. cách chuyển đối tượng json từ java sang javascript?
- 12. Chuyển đổi từ C++ sang Java
- 13. Chuyển đổi C CRC16 sang Java CRC16
- 14. Java - Chuyển đổi hình ảnh sang Base64
- 15. Chuyển đổi mẫu C++ bit sang Java
- 16. Chuyển đổi DataTable sang JSON bằng khóa trên mỗi dòng
- 17. JSON xâu chuỗi chuyển đổi phao sang int
- 18. Có trình chuyển đổi JSON sang XML trực tuyến không?
- 19. Thư viện PHP để chuyển đổi JSON sang CSV?
- 20. Chuyển đổi đối tượng Java sang Json bằng cách sử dụng Marshaller
- 21. Chuyển JSON sang phim Flash
- 22. Cách chuyển đổi TIFF sang JPEG/PNG trong java
- 23. Chuyển đổi từ byte sang int trong java
- 24. chuyển đổi html sang hình ảnh trong byte mảng java
- 25. Chuyển đổi PDF sang hình ảnh thu nhỏ trong Java
- 26. cách chuyển đổi jpg sang pdf trong Android java
- 27. Có trình chuyển đổi Java 7 sang Java 6 không?
- 28. Chuyển đổi PartialView sang HTML
- 29. chuyển đổi rss thành JSON
- 30. Chuyển đổi đối tượng tùy chỉnh sang JSON bằng cách sử dụng đá quý JSON
Xem Matt York trả lời ở đây: http://stackoverflow.com/questions/662859/convert-csv -xls-to-json – JMax
Anh ấy yêu cầu Json gửi CSV ... chứ không phải theo cách khác. –