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

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

12
ไม่สามารถยกเลิกการกำหนดค่าอินสแตนซ์ของ java.util.ArrayList ออกจากโทเค็น START_OBJECT
ฉันกำลังพยายามโพสต์Listวัตถุที่กำหนดเอง JSON ของฉันในเนื้อหาคำขอคือ: { "collection": [ { "name": "Test order1", "detail": "ahk ks" }, { "name": "Test order2", "detail": "Fisteku" } ] } รหัสฝั่งเซิร์ฟเวอร์ที่จัดการคำขอ: import java.util.Collection; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @Path(value = "/rest/corder") public class COrderRestService { @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public Response …

9
วิธีการทำให้ Joda DateTime เป็นอนุกรมกับโปรเซสเซอร์ Jackson JSON
ฉันจะให้แจ็คสันทำให้เป็นซีเรียลไลซ์อ็อบเจ็กต์ Joda DateTime ตามรูปแบบง่ายๆ (เช่น "dd-MM-yyyy") ได้อย่างไร ฉันพยายามแล้ว: @JsonSerialize(using=DateTimeSerializer.class) private final DateTime date; ฉันได้ลองแล้ว: ObjectMapper mapper = new ObjectMapper() .getSerializationConfig() .setDateFormat(df); ขอบคุณ!
118 java  json  jodatime  jackson 

4
แจ็คสันจะเปลี่ยน JsonNode เป็น ArrayNode โดยไม่ต้องแคสต์ได้อย่างไร
ฉันกำลังเปลี่ยนไลบรารี JSON จาก org.json เป็น Jackson และฉันต้องการย้ายรหัสต่อไปนี้: JSONObject datasets = readJSON(new URL(DATASETS)); JSONArray datasetArray = datasets.getJSONArray("datasets"); ตอนนี้ใน Jackson ฉันมีสิ่งต่อไปนี้: ObjectMapper m = new ObjectMapper(); JsonNode datasets = m.readTree(new URL(DATASETS)); ArrayNode datasetArray = (ArrayNode)datasets.get("datasets"); อย่างไรก็ตามฉันไม่ชอบนักแสดงที่นั่นมีความเป็นไปได้สำหรับ a ClassCastException? มีวิธีการที่เทียบเท่ากับgetJSONArrayในorg.jsonเพื่อที่ฉันต้องจัดการข้อผิดพลาดที่เหมาะสมในกรณีที่ไม่ได้เป็นอาร์เรย์?
116 java  arrays  json  jackson 

8
ฉันจะบอกแจ็คสันให้ละเว้นคุณสมบัติที่ฉันไม่สามารถควบคุมซอร์สโค้ดได้อย่างไร
เรื่องสั้นขนาดยาวหนึ่งในเอนทิตีของฉันมีGeometryCollectionที่ทำให้เกิดข้อยกเว้นเมื่อคุณเรียก "getBoundary" (ทำไมถึงเป็นหนังสือเล่มอื่นตอนนี้สมมติว่านี่คือวิธีการทำงาน) มีวิธีที่ฉันจะบอกแจ็คสันว่าไม่ให้รวมตัวรับเฉพาะนั้นได้ไหม? ฉันรู้ว่าฉันสามารถใช้ @JacksonIgnore เมื่อฉันเป็นเจ้าของ / ควบคุมรหัส แต่นี่ไม่ใช่กรณีแจ็คสันจะมาถึงจุดนี้ด้วยการทำให้เป็นอนุกรมของออบเจ็กต์หลักอย่างต่อเนื่อง ฉันเห็นตัวเลือกการกรองในเอกสารของแจ็คสัน นั่นเป็นทางออกที่น่าเชื่อถือหรือไม่? ขอบคุณ!
112 java  json  jackson 

4
JsonMappingException: จากโทเค็น START_ARRAY
รับไฟล์. json ต่อไปนี้: [ { "name" : "New York", "number" : "732921", "center" : [ "latitude" : 38.895111, "longitude" : -77.036667 ] }, { "name" : "San Francisco", "number" : "298732", "center" : [ "latitude" : 37.783333, "longitude" : -122.416667 ] } ] ฉันเตรียมสองคลาสเพื่อแสดงข้อมูลที่มีอยู่: public class Location { public String …
112 java  arrays  json  jackson 

11
ฉันจะใช้ Serializer แบบกำหนดเองกับ Jackson ได้อย่างไร
ฉันมีคลาส Java สองคลาสที่ฉันต้องการทำให้เป็นอนุกรมกับ JSON โดยใช้ Jackson: public class User { public final int id; public final String name; public User(int id, String name) { this.id = id; this.name = name; } } public class Item { public final int id; public final String itemNr; public final User createdBy; public Item(int …

6
จะแก้ไข JsonNode ใน Java ได้อย่างไร?
ฉันต้องการเปลี่ยนค่าของแอตทริบิวต์ JSON ใน Java ฉันสามารถรับค่าได้อย่างถูกต้อง แต่ฉันไม่สามารถแก้ไข JSON ได้ นี่คือรหัสด้านล่าง JsonNode blablas = mapper.readTree(parser).get("blablas"); for (JsonNode jsonNode : blablas) { String elementId = jsonNode.get("element").asText(); String value = jsonNode.get("value").asText(); if (StringUtils.equalsIgnoreCase(elementId, "blabla")) { if(value != null && value.equals("YES")){ // I need to change the node to NO then save it into the …
109 java  json  jackson 

8
เหตุใดเมื่อตัวสร้างถูกใส่คำอธิบายประกอบด้วย @JsonCreator อาร์กิวเมนต์ของมันจึงต้องใส่คำอธิบายประกอบด้วย @JsonProperty
ใน Jackson เมื่อคุณใส่คำอธิบายประกอบตัวสร้างด้วย@JsonCreatorคุณต้องใส่คำอธิบายประกอบข้อโต้แย้งด้วย@JsonProperty. ตัวสร้างนี้ public Point(double x, double y) { this.x = x; this.y = y; } กลายเป็นสิ่งนี้: @JsonCreator public Point(@JsonProperty("x") double x, @JsonProperty("y") double y) { this.x = x; this.y = y; } ฉันไม่เข้าใจว่าทำไมมันถึงจำเป็น คุณช่วยอธิบายได้ไหม?

13
Jackson databind enum ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ฉันจะ deserialize สตริง JSON ที่มีค่า enum ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ได้อย่างไร (โดยใช้ Jackson Databind) สตริง JSON: [{"url": "foo", "type": "json"}] และ Java POJO ของฉัน: public static class Endpoint { public enum DataType { JSON, HTML } public String url; public DataType type; public Endpoint() { } } ในกรณีนี้การ deserializing JSON ด้วย"type":"json"จะล้มเหลวในกรณีที่ได้"type":"JSON"ผล แต่ฉันต้องการ"json"ทำงานด้วยเพื่อเหตุผลในการตั้งชื่อ การทำให้ POJO …

3
Jackson และการอ้างอิงประเภททั่วไป
ฉันต้องการใช้ไลบรารี jackson json สำหรับวิธีการทั่วไปดังนี้: public MyRequest<T> tester() { TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>(); MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonRequest, typeRef); return requestWrapper.getRequest(); } ... public class MyWrapper<T> { private MyRequest<T> request; public MyRequest<T> getRequest() { return request; } public void setRequest(MyRequest<T> request) { this.request = request; } } public class MyRequest{ …
107 java  json  generics  jackson 

11
ฉันจะเรียก deserializer เริ่มต้นจาก deserializer แบบกำหนดเองใน Jackson ได้อย่างไร
ฉันมีปัญหาใน deserializer ที่กำหนดเองใน Jackson ฉันต้องการเข้าถึง Serializer เริ่มต้นเพื่อเติมข้อมูลวัตถุที่ฉันกำลังแยกส่วน หลังจากมีประชากรฉันจะทำสิ่งที่กำหนดเอง แต่ก่อนอื่นฉันต้องการยกเลิกการกำหนดค่าเริ่มต้นของวัตถุด้วยพฤติกรรมเริ่มต้นของแจ็คสัน นี่คือรหัสที่ฉันมีอยู่ในขณะนี้ public class UserEventDeserializer extends StdDeserializer<User> { private static final long serialVersionUID = 7923585097068641765L; public UserEventDeserializer() { super(User.class); } @Override @Transactional public User deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { ObjectCodec oc = jp.getCodec(); JsonNode node = oc.readTree(jp); User deserializedUser …

12
ฉันจะปิดใช้งาน fail_on_empty_beans ใน Jackson ได้อย่างไร
เมื่อใช้แจ็คสัน 2.1 ฉันจะปิดการใช้งานfail_on_empty beansข้อความแสดงข้อผิดพลาดที่ดูเหมือนว่าต้องการให้ฉันปิดใช้งานได้อย่างไร ฉันสมมติว่านี่เป็นเพียงสิ่งที่ง่ายที่สุดในโลก แต่มันก็สายไปแล้วและฉันไม่สามารถหาบทช่วยสอนง่ายๆหรืออะไรที่ชัดเจนโดยเฉพาะจากไฟล์api. SerializationFactoryเหรอ? ทำไมพวกเขาถึงทำให้มันไม่เข้าใจง่ายแล้วทำให้ข้อความแสดงข้อผิดพลาดดูตรงไปตรงมา แม้ว่าฉันจะชอบข้อความแสดงข้อผิดพลาด แต่ฉันหมายความว่ามันดีกว่า NPE ฉันสมมติว่ามีวิธีทำโดยใช้คำอธิบายประกอบ - แต่ฉันไม่กระตือรือร้นที่จะใช้มันเลยสำหรับงานง่ายๆที่ฉันทำ!
105 java  jackson 

12
ฉันจะรวม JSON ดิบในวัตถุโดยใช้ Jackson ได้อย่างไร
ฉันกำลังพยายามรวม JSON ดิบไว้ในออบเจ็กต์ Java เมื่ออ็อบเจ็กต์ (de) ต่ออนุกรมโดยใช้ Jackson เพื่อทดสอบฟังก์ชันนี้ฉันได้เขียนการทดสอบต่อไปนี้: public static class Pojo { public String foo; @JsonRawValue public String bar; } @Test public void test() throws JsonGenerationException, JsonMappingException, IOException { String foo = "one"; String bar = "{\"A\":false}"; Pojo pojo = new Pojo(); pojo.foo = foo; pojo.bar = bar; …

1
org.codehaus.jackson กับ com.fasterxml.jackson.core
org.codehaus.jackson และ com.fasterxml.jackson.core เกี่ยวข้องกันหรือไม่ ฉันมี org.codehaus.jackson แจ็คสัน - เวอร์ชัน 1.7.2 ทั้งหมด และ com.fasterxml.jackson.core> jackson-databind เวอร์ชัน 2.4.3 ในปอมของฉัน ฉันไม่แน่ใจว่าซ้ำซ้อนและอาจขัดแย้งกันได้หรือไม่
102 java  json  jackson 

11
วิธีปรับแต่งตัวทำแผนที่ Jackson JSON ที่ Spring Boot ใช้โดยปริยาย?
ฉันใช้ Spring Boot (1.2.1) ในลักษณะเดียวกันกับในการสอนการสร้าง RESTful Web Service : @RestController public class EventController { @RequestMapping("/events/all") EventList events() { return proxyService.getAllEvents(); } } ข้างต้น Spring MVC ใช้แจ็คสันโดยปริยายสำหรับการทำให้EventListวัตถุของฉันเป็นอนุกรมเป็น JSON แต่ฉันต้องการปรับแต่งง่ายๆในรูปแบบ JSON เช่น: setSerializationInclusion(JsonInclude.Include.NON_NULL) คำถามคือวิธีที่ง่ายที่สุดในการปรับแต่งเครื่องมือทำแผนที่ JSON โดยปริยายคืออะไร? ฉันลองใช้แนวทางในบล็อกโพสต์นี้สร้าง CustomObjectMapper และอื่น ๆ แต่ขั้นตอนที่ 3 "ลงทะเบียนคลาสในบริบท Spring" ล้มเหลว: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jacksonFix': …

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