-1
據我所知,所有JSON字段名都是字符串值。但是,我遇到了一個代碼片段,它對JSON的「鍵」進行字符串檢查,看它是否是一個字符串,如果不是,則會引發異常。它類似於:JSON字段不能是字符串嗎?
if (!(key instanceof String)){
throw new exception();}
是否需要此檢查?
編輯:
例如,
while (jp.nextToken() == JsonToken.FIELD_NAME){
String key = jp.getCurrentName();
}
該代碼段將只發展到JSON令牌是字符串,所以我在想,如果一個JSON可能包含不是字符串,這樣的字段名傑克遜解析器將簡單地跳過這些字段名稱。
這要看?我知道在GSON中,所有密鑰都必須是字符串 – Jeeter
@Jeeter當你說「在GSON中,所有密鑰都必須是字符串」時,你的意思是「GSON解析器假定密鑰是字符串,並且如果不是,則會拋出異常」?我正在使用Jackson Library構建一個,並且它似乎也假設關鍵字是String,因爲'getCurrentName'將返回一個字符串,而不是一個對象,所以我想知道如何Jackson處理非String字段名,如果有效的JSON甚至可以包含非字符串字段名。 –
你可以顯示你正在使用的解析器嗎?向我們展示「關鍵」是什麼,它是如何聲明的以及創建它的。 –