[英]How to convert pretty format json file into a simple single line json file using java?
我需要將 Pretty 格式的 json 文件轉換為一行 json 文件。 但不能這樣做。 誰可以幫我這個事?
例子:下面需要轉換
[
{
"Employee ID": 1,
"Name": "Abhishek",
"Designation": "Software Engineer"
},
{
"Employee ID": 2,
"Name": "Garima",
"Designation": "Email Marketing Specialist"
}
]
[
{
"Employee ID": 1,
"Name": "Abhishek",
"Designation": "Software Engineer"
},
{
"Employee ID": 2,
"Name": "Garima",
"Designation": "Email Marketing Specialist"
}
]
對此:
'[{"Employee ID":1,"Name":"Abhishek","Designation":"Software Engineer"},' \
'{"Employee ID":2,"Name":"Garima","Designation":"Email Marketing Specialist"}]'
這個答案的一個更好、更完整的版本,帶有正確的錯誤處理和刪除額外的空格。
提到的答案的一個問題是它使用.concat()
而沒有.trim()
- 嵌套非常深的 pretty-JSON 的縮進將在最后的 output 中作為額外的空格可見。
String unprettyJSON = null;
try {
unprettyJSON = Files.readAllLines(Paths.get("pretty.json"))
.stream()
.map(String::trim)
.reduce(String::concat)
.orElseThrow(FileNotFoundException::new);
} catch (IOException e) {
e.printStackTrace();
}
Output 帶裝飾:
[{"Employee ID": 1,"Name": "Abhishek","Designation": "Software Engineer"},{"Employee ID": 2,"Name": "Garima","Designation": "Email Marketing Specialist"}][{"Employee ID": 1,"Name": "Abhishek","Designation": "Software Engineer"},{"Employee ID": 2,"Name": "Garima","Designation": "Email Marketing Specialist"}]
Output 無修剪:
[ { "Employee ID": 1, "Name": "Abhishek", "Designation": "Software Engineer" }, { "Employee ID": 2, "Name": "Garima", "Designation": "Email Marketing Specialist" }][ { "Employee ID": 1, "Name": "Abhishek", "Designation": "Software Engineer" }, { "Employee ID": 2, "Name": "Garima", "Designation": "Email Marketing Specialist" }]
如果您通過Files.readAllLines(Path)
讀取文件內容,那么您已經將每一行作為列表中的不同項目獲取,您可以依次將其合並為一行。
例如:
String oneLine = Files.readAllLines(Paths.get("input.json"))
.stream()
.reduce(String::concat)
.orElseThrow();
System.out.println(oneLine);
try {
unprettyJSON = Files.readAllLines(Paths.get("pretty.json"))
.stream()
.map(String::trim)
.reduce(String::concat)
.orElseThrow(FileNotFoundException::new);
} catch (IOException e) {
e.printStackTrace();
}
上述解決方案效果很好。 感謝您發布它。 您可以從 a.json 文件中讀取,該文件轉換為單行字符串,也可用於 POST https 請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.