我需要將 JSON 資料保留在我的代碼中以進行單元測驗作為字串。例如,
{
"one": 1,
"two": 2
}
我知道我可以從檔案或屬性中讀取這些資料,但我需要將它們保存為字串。目前,我有這樣的事情:
String s = "{\n"
" \"one\": 1,\n"
" \"two\": 2\n"
"}";
但它看起來很難看,而且在更復雜的資料中,很難閱讀和修改它。
我可能會擺脫它們,\n因為它們并不是真正需要的,而是為了以后漂亮地查看這些資料:
String s = "{"
" \"one\": 1,"
" \"two\": 2"
"}";
另外,我可能會使用引號替換的技巧:
String s = ("{\n"
" 'one': 1,\n"
" 'two': 2\n"
"}").replace('\'','"');
或者同時將兩者結合起來。
有沒有更好的方法將 JSON 資料表示為StringJava?
例如,在 Python 中,有三引號:
s = """
{
"one": 1,
"two": 2
}
"""
uj5u.com熱心網友回復:
文本塊 - Java 15
如果您使用 Java 15 或更高版本來表示 JSON 資料而不是字串連接,由于需要轉義每個引號,這很乏味且容易出錯,您可以使用text blocks。
要創建文本塊,您需要將多行文本括在三個雙引號字符"""中。
String myJSON = """ // no characters should appear after the opening delimiter - the text starts from the next line
{
"one": 1,
"two": 2
}""";
與常規字串一樣,文本塊支持轉義序列,但您不需要在文本塊內轉義引號。
請注意,開頭的分隔符"""應緊跟在行終止符之后,如上例所示。
備擇方案
如果您的專案在不支持文本塊的 Java 版本上,但您不想使用字串連接撥號,則可以將 JSON 放入文本檔案中,然后逐行讀取。
使用 Java 11,您可以使用一行代碼將整個檔案內容讀入一個字串Files.readString():
String myJSON = Files.readString(path);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492572.html
