Jackson'ın giriş JSON'a daha az sıkılaştırılmasını sağlamanın bir yolu var mı? Örneğin. JSONObject nesnesi şu karşılıklar ayrılmakta:Jackson'ı giriş için daha kolay hale getirin JSON
kurucular kabul edecekleri metinlerde daha bağışlayıcı şunlardır:
- Fazladan, (virgül) hemen Kapanış ayracı önce görünebilir.
- Dizeler '(tek tırnak) ile alıntı yapılabilir.
- Dizeler, bir alıntı veya tek bir alıntıyla başlamıyorsa ve baştaki veya sondaki boşluk içermiyorsa ve bu karakterlerden hiçbirini içermiyorsa alıntılanmasına gerek yoktur: {} []/\:, =; # sayıları gibi görünmüyorlar ve ayrılmış sözcükler doğru değilse, false veya null değilse. *
- Anahtarlar şu şekilde olabilir: = veya => yanı sıra:.
- Değerler; (noktalı virgül) yanı sıra, (virgül).
- Sayılar 0x- (onaltılık) önekine sahip olabilir.
Benim için en ilgi çekici olan 3 noktadır. Aşağıdaki dönüşüm sağlar:
new JSONObject("{A : 1}");
... ama jackson için aynı giriş json ile bir hata mesajı görüntülenir:
new ObjectMapper().readTree("{ A : 1}"); // throws an exception
İstisna:
org.codehaus.jackson.JsonParseException: Unexpected character ('A' (code 65)): was expecting double-quote to start field name
at [Source: [email protected]; line: 1, column: 4]
at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:943)
at org.codehaus.jackson.impl.JsonParserBase._reportError(JsonParserBase.java:636)
at org.codehaus.jackson.impl.JsonParserBase._reportUnexpectedChar(JsonParserBase.java:569)
at org.codehaus.jackson.impl.ReaderBasedParser._handleUnusualFieldName(ReaderBasedParser.java:342)
at org.codehaus.jackson.impl.ReaderBasedParser._parseFieldName(ReaderBasedParser.java:235)
at org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:125)
at org.codehaus.jackson.map.deser.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:180)
at org.codehaus.jackson.map.deser.BaseNodeDeserializer.deserializeAny(JsonNodeDeserializer.java:210)
at org.codehaus.jackson.map.deser.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:52)
at org.codehaus.jackson.map.deser.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:13)
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1588)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1130)