คำถามติดแท็ก jackson

Jackson เป็นไลบรารี Java สำหรับจัดการงานต่างๆเช่นการอ่านและการเขียน (การแยกวิเคราะห์ / สร้าง) และการเชื่อมโยงข้อมูลกับ / จากวัตถุ Java แม้ว่าจะใช้สำหรับ JSON เป็นหลัก แต่ Jackson ยังรองรับรูปแบบข้อมูลอื่น ๆ อีกมากมายเช่น Avro, CBOR, CSV, Java Properties, Protobuf, Smile, XML และ YAML

8
วิธีการใช้แจ็คสันในการกำจัดวัตถุต่างๆออก
เอกสารผูกพันข้อมูลแจ็คสันระบุว่าแจ็คสันสนับสนุน deserialising "อาร์เรย์ชนิดที่สนับสนุนทั้งหมด" แต่ฉันไม่สามารถคิดออกไวยากรณ์ที่แน่นอนสำหรับการนี้ สำหรับวัตถุเดียวฉันจะทำสิ่งนี้: //json input { "id" : "junk", "stuff" : "things" } //Java MyClass instance = objectMapper.readValue(json, MyClass.class); ตอนนี้สำหรับอาร์เรย์ฉันต้องการทำสิ่งนี้: //json input [{ "id" : "junk", "stuff" : "things" }, { "id" : "spam", "stuff" : "eggs" }] //Java List<MyClass> entries = ? ใครรู้ว่ามีคำสั่งหายไปมายากล? ถ้าไม่เช่นนั้นทางออกคืออะไร?
779 java  json  jackson 

19
จะบอกแจ็คสันให้เพิกเฉยฟิลด์ในระหว่างการทำให้เป็นอนุกรมได้อย่างไรถ้าค่าเป็นโมฆะ?
แจ็กสันสามารถกำหนดค่าให้ละเว้นค่าฟิลด์ในระหว่างการทำให้เป็นอนุกรมได้อย่างไรถ้าค่าของฟิลด์นั้นเป็นโมฆะ ตัวอย่างเช่น: public class SomeClass { // what jackson annotation causes jackson to skip over this value if it is null but will // serialize it otherwise private String someValue; }
687 java  jackson 

30
แจ็กสันกับ JSON: ฟิลด์ที่ไม่รู้จักไม่ถูกทำเครื่องหมายว่าเพิกเฉย
ฉันต้องแปลงสตริง JSON ให้เป็นวัตถุ Java ฉันใช้ Jackson สำหรับการจัดการ JSON ฉันไม่สามารถควบคุมอินพุต JSON ได้ (ฉันอ่านจากเว็บเซอร์วิส) นี่คืออินพุต JSON ของฉัน: {"wrapper":[{"id":"13","name":"Fred"}]} นี่คือกรณีการใช้งานที่เรียบง่าย: private void tryReading() { String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}"; ObjectMapper mapper = new ObjectMapper(); Wrapper wrapper = null; try { wrapper = mapper.readValue(jsonStr , Wrapper.class); } catch (Exception e) { e.printStackTrace(); } System.out.println("wrapper = …

13
JsonMappingException: ไม่พบตัวสร้างที่เหมาะสมสำหรับชนิด [ชนิดง่าย ๆ คลาส]: ไม่สามารถสร้างอินสแตนซ์จากวัตถุ JSON
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามรับคำขอ JSON และดำเนินการ: org.codehaus.jackson.map.JsonMappingException: ไม่พบตัวสร้างที่เหมาะสมสำหรับประเภท [ประเภทอย่างง่าย, คลาส com.myweb.ApplesDO]: ไม่สามารถสร้างอินสแตนซ์จากวัตถุ JSON (ต้องการเพิ่ม / เปิดใช้งานข้อมูลประเภทใช่หรือไม่) นี่คือ JSON ที่ฉันพยายามจะส่ง: { "applesDO" : [ { "apple" : "Green Apple" }, { "apple" : "Red Apple" } ] } ในตัวควบคุมฉันมีลายเซ็นของวิธีการต่อไปนี้: @RequestMapping("showApples.do") public String getApples(@RequestBody final AllApplesDO applesRequest){ // Method Code } AllApplesDO เป็นเสื้อคลุมของ ApplesDO: public …

7
แทนค่า null ใน JSON
วิธีที่แนะนำสำหรับการคืนค่า null ใน JSON คืออะไร มีการตั้งค่าที่แตกต่างกันสำหรับดั้งเดิม? ตัวอย่างเช่นหากวัตถุของฉันบนเซิร์ฟเวอร์มีจำนวนเต็มชื่อ "myCount" โดยไม่มีค่า JSON ที่ถูกต้องที่สุดสำหรับค่านั้นจะเป็น: {} หรือ { "myCount": null } หรือ { "myCount": 0 } คำถามเดียวกันสำหรับ Strings - ถ้าฉันมีสตริง "myString" บนเซิร์ฟเวอร์เป็น JSON ที่ดีที่สุด: {} หรือ { "myString": null } หรือ { "myString": "" } หรือ (พระเจ้าช่วยฉันด้วย) { "myString": "null" } ฉันชอบการประชุมสำหรับคอลเลกชันที่จะแสดงใน JSON เป็นคอลเลกชันที่ว่างเปล่าhttp://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html …
422 json  jackson  gson 

22
การเรียกซ้ำแบบไม่สิ้นสุดกับปัญหา Jackson JSON และ Hibernate JPA
เมื่อพยายามแปลงวัตถุ JPA ที่มีความสัมพันธ์แบบสองทิศทางเป็น JSON ฉันจะได้รับต่อไป org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) ทั้งหมดที่ฉันพบคือหัวข้อนี้ซึ่งสรุปโดยทั่วไปพร้อมกับการแนะนำเพื่อหลีกเลี่ยงการเชื่อมโยงแบบสองทิศทาง ไม่มีใครมีความคิดในการแก้ปัญหาสำหรับข้อผิดพลาดในฤดูใบไม้ผลินี้หรือไม่? ------ แก้ไข 2010-07-24 16:26:22 ------- Codesnippets: วัตถุธุรกิจ 1: @Entity @Table(name = "ta_trainee", uniqueConstraints = {@UniqueConstraint(columnNames = {"id"})}) public class Trainee extends BusinessObject { @Id @GeneratedValue(strategy = GenerationType.TABLE) @Column(name = "id", nullable = false) private Integer id; @Column(name = "name", …
412 java  json  orm  spring-mvc  jackson 

5
แจ็คสันกับ Gson [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา หลังจากค้นหาไลบรารีที่มีอยู่สำหรับ JSON แล้วฉันก็พบกับสองสิ่งนี้: แจ็คสัน Google GSon ฉันเป็นเพียงเล็กน้อยต่อ GSON แต่คำในเน็ตคือ GSon ทนทุกข์ทรมานจากปัญหาประสิทธิภาพท้องฟ้าบางอย่าง(ณ เดือนกันยายน 2009) ฉันทำการเปรียบเทียบต่อไป ในระหว่างนี้ฉันกำลังมองหาความช่วยเหลือในการตัดสินใจ
363 java  json  comparison  gson  jackson 

5
ฉันควรประกาศ ObjectMapper ของ Jackson เป็นฟิลด์คงที่หรือไม่
ห้องสมุดของแจ็คสันObjectMapperชั้นดูเหมือนว่าจะมีความปลอดภัยด้าย นี่หมายความว่าฉันควรประกาศว่าฉันObjectMapperเป็นสนามคงที่เช่นนี้ class Me { private static final ObjectMapper mapper = new ObjectMapper(); } แทนที่จะเป็นฟิลด์ระดับอินสแตนซ์เช่นนี้ class Me { private final ObjectMapper mapper = new ObjectMapper(); }
361 java  json  jackson 

6
ใช้ @JsonIgnore เฉพาะระหว่างการทำให้เป็นอนุกรม แต่ไม่ใช่การดีซีเรียลไลเซชัน
ฉันมีวัตถุผู้ใช้ที่ส่งไปยังและจากเซิร์ฟเวอร์ เมื่อฉันส่งวัตถุผู้ใช้ออกฉันไม่ต้องการส่งรหัสผ่านที่แฮชไปยังไคลเอนต์ ดังนั้นฉันเพิ่ม@JsonIgnoreในคุณสมบัติรหัสผ่าน แต่ยังป้องกันไม่ให้ถูกดีซีเรียลไลซ์ลงในรหัสผ่านซึ่งทำให้ยากต่อการลงทะเบียนผู้ใช้เมื่อพวกเขาไม่ได้รับรหัสผ่าน ฉัน@JsonIgnoreจะนำไปใช้กับการทำให้เป็นอนุกรมเท่านั้นและไม่ได้ทำการดีซีเรียลไลเซชัน? ฉันใช้ Spring JSONView ดังนั้นฉันจึงไม่สามารถควบคุมสิ่งObjectMapperต่างๆ สิ่งที่ฉันได้ลอง: เพิ่ม@JsonIgnoreไปยังคุณสมบัติ เพิ่ม@JsonIgnoreในวิธี getter เท่านั้น

18
ทำให้เป็นอันดับกับ Jackson (JSON) - รับ“ ไม่พบ serializer”?
ฉันได้รับการยกเว้นเมื่อพยายามทำให้เป็นวัตถุที่ง่ายมากโดยใช้แจ็คสัน ข้อผิดพลาด: org.codehaus.jackson.map.JsonMappingException: ไม่พบ serializer สำหรับคลาส MyPackage.TestA และไม่พบคุณสมบัติในการสร้าง BeanSerializer (เพื่อหลีกเลี่ยงข้อยกเว้นให้ปิดการใช้งาน SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ด้านล่างเป็นคลาสและรหัสอย่างง่ายในการทำให้เป็นอนุกรม ใครสามารถบอกฉันได้ว่าทำไมฉันถึงได้รับข้อผิดพลาดนี้? public class TestA { String SomeString = "asd"; } TestA testA = new TestA(); ObjectMapper om = new ObjectMapper(); try { String testAString = om.writeValueAsString(testA); // error here! TestA newTestA = om.readValue(testAString, TestA.class); } catch (JsonGenerationException e) …
262 java  json  jackson 

12
การแปลงข้อมูล JSON เป็นวัตถุ Java
ฉันต้องการเข้าถึงคุณสมบัติจากสตริง JSON ภายในวิธีการกระทำของ Java ของฉัน myJsonString = object.getJson()สตริงสามารถใช้ได้โดยเพียงแค่บอกว่า ด้านล่างเป็นตัวอย่างของสิ่งที่สตริงสามารถมีลักษณะ: { 'title': 'ComputingandInformationsystems', 'id': 1, 'children': 'true', 'groups': [{ 'title': 'LeveloneCIS', 'id': 2, 'children': 'true', 'groups': [{ 'title': 'IntroToComputingandInternet', 'id': 3, 'children': 'false', 'groups': [] }] }] } ในสายนี้ทุกวัตถุ JSON มีอาร์เรย์ของวัตถุ JSON อื่น ๆ ความตั้งใจคือการแยกรายการของรหัสที่วัตถุที่กำหนดใด ๆ ที่มีคุณสมบัติกลุ่มที่มีวัตถุ JSON อื่น ๆ ฉันดู …
262 java  json  jackson  gson 

6
วิธีการแยกสตริง JSON เป็น JsonNode ใน Jackson
มันควรจะง่ายมาก แต่ฉันไม่สามารถหามันได้หลังจากลองใช้เวลาหนึ่งชั่วโมง ฉันต้องได้รับสตริง JSON สำหรับตัวอย่างเช่นแจงเป็น{"k1":v1,"k2":v2}JsonNode JsonFactory factory = new JsonFactory(); JsonParser jp = factory.createJsonParser("{\"k1\":\"v1\"}"); JsonNode actualObj = jp.readValueAsTree(); จะช่วยให้ java.lang.IllegalStateException: No ObjectCodec defined for the parser, can not deserialize JSON into JsonNode tree
231 java  json  parsing  jackson 

13
Jackson enum การทำให้เป็นอันดับและ DeSerializer
ฉันใช้ JAVA 1.6 และ Jackson 1.9.9 ฉันมีปัญหา public enum Event { FORGOT_PASSWORD("forgot password"); private final String value; private Event(final String description) { this.value = description; } @JsonValue final String value() { return this.value; } } ฉันได้เพิ่ม @JsonValue ดูเหมือนว่าจะทำงานให้เป็นวัตถุ: {"event":"forgot password"} แต่เมื่อฉันพยายามทำให้หมดความหวังฉันจะได้รับ Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.globalrelay.gas.appsjson.authportal.Event …

16
ทำให้เป็นอันดับ / deserialize java 8 java.time ด้วย mapper แจ็คสัน JSON
ฉันจะใช้ mapper Jackson JSON กับ Java 8 LocalDateTime ได้อย่างไร org.codehaus.jackson.map.JsonMappingException: ไม่สามารถยกตัวอย่างค่าของประเภท [ประเภทที่เรียบง่าย, คลาส java.time.LocalDateTime] จาก JSON String; ไม่มีตัวสร้างสตริงเดี่ยว / วิธีการของโรงงาน (ผ่านสายอ้างอิง: MyDTO ["field1"] -> SubDTO ["date"])
221 jackson  java-time 

7
วิธีระบุแจ็คสันให้ใช้เฉพาะฟิลด์ต่างๆ
พฤติกรรมแจ็คสันเริ่มต้นดูเหมือนว่าจะใช้ทั้งคุณสมบัติ (ตัวรับและตัวตั้งค่า) และฟิลด์เพื่อทำให้เป็นอนุกรมและดีซีเรียลไลซ์เป็น json ฉันต้องการใช้ฟิลด์เป็นแหล่งที่มาของการกำหนดค่าการทำให้เป็นอนุกรมและไม่ต้องการให้แจ็คสันดูคุณสมบัติเลย ฉันสามารถทำสิ่งนี้ในแต่ละชั้นเรียนพร้อมคำอธิบายประกอบ: @JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) แต่ฉันไม่ต้องการที่จะใส่มันในทุก ๆ ชั้น ... เป็นไปได้ไหมที่จะกำหนดค่านี้ทั่วโลก? ชอบเพิ่มบางอย่างใน Object Mapper หรือไม่
191 java  json  jackson 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.