标签: jackson

无法反序列化超出 START_OBJECT 令牌的实例

我的 Json 看起来像(并且它不可修改)

{
    ....
    "Sale": [
        "SaleLines": {
                    "SaleLine": [
                        {
                            "Item": {
                                "Prices": {
                                    "ItemPrice": [
                                        {
                                            "amount": "100",
                                            "useType": "Default"
                                        },
                                        {
                                            "amount": "100",
                                            "useType": "MSRP"
                                        }
                                    ]
                                },
                            }
                                ......
                                ......
                        } 
                ] 
            "calcDiscount": "0",
            "calcSubtotal": "500",
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

java POJO 代码看起来像

public static class SaleLines {

    @JsonProperty("SaleLine")
    private SaleLineObject[] saleLineObject;

    public SaleLineObject[] getSaleLineObject() { return saleLineObject; }

    public void setSaleLineObject(SaleLineObject[] saleLineObject) { this.saleLineObject = saleLineObject; }
}

public static class SaleLineObject {
    private SaleLine …
Run Code Online (Sandbox Code Playgroud)

java json jackson

0
推荐指数
1
解决办法
3万
查看次数

使用 Jackson 进行 JSON 反序列化:找不到适合类型的构造函数 - 不可能提供默认构造函数或注释构造函数

我使用 Jackson ObjectMapper 将对象层次结构序列化为 json String。之后我想反序列化对象。我有如下异常。

重要的是APINewDealArrangementImpl类层次结构超出了我的更改范围——它是外部库的一部分。在这种情况下,我无法实现默认构造函数,也无法使用@JsonCreatorannotion

如何避免“找不到合适的构造函数”异常?是否可以使用TypeResolverBuilderJackson API 中的一些自定义实现或其他功能来解决这个问题?感谢帮助。

org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class com.tzero.api.transactions.TransactionState]: can not instantiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@57ac3379; line: 4, column: 5] (through reference chain: com.tzero.api.java.transactions.APINewDealArrangementImpl["state"])
    at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:746)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
    at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299)
    at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697)
    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580)
    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863)
Run Code Online (Sandbox Code Playgroud)

java json jackson

0
推荐指数
1
解决办法
3261
查看次数

Jackson JSON 解析枚举值

假设我有一个枚举类,如下所示:

public enum Lang {

    ENGLISH("en_US"), FRENCH("fr_CA");

    String val;

    Lang(String val) {
       this.val = val;
    }

    public String getValue() {
        return val;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个 POJO 如下:

public class Foo {

    private String bar;
    private Lang lang;


    public String getBar() {
        return bar;
    }

    public void setBar(String bar) {
        this.bar = bar;
    }

    public Lang getLang() {
        return lang;
    }

    public void setLang(Lang lang) {
        this.lang = lang;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何配置 Jackson 以将以下有效负载转换为 POJO 类?

{ "bar": "someValue", "lang": "en-US"} …

java enums json jackson

0
推荐指数
1
解决办法
3084
查看次数

如何从java中的字符串中删除反斜杠和双引号以制作json

class Request {     
     private String requestid;
     private String contenttype;
     private String service;
     private String requestjson;
}
Run Code Online (Sandbox Code Playgroud)

使用对象映射器将此对象制作为 json 但映射器正在返回我

"requestjson\":\"{\\\"username\\\":\\\"farhan\\\",\\\"password\\\":\\\"farhaan\\\"}\"}"}
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除这个额外的

\\\
Run Code Online (Sandbox Code Playgroud)

我试过

 jsonOutput.replaceAll("\"",Character.toString ((char) 34));
Run Code Online (Sandbox Code Playgroud)

java json jackson spring-boot

0
推荐指数
1
解决办法
2752
查看次数

杰克逊\ GSON - Pojo到JSON,反之亦然.文件\序列化是强制性的吗?

我需要一个JSON - > Pojo - > JSON转换.

我调查了主流图书馆Jackson和GSON,

显然两者都使用:

//write converted json data to a file named "file.json"
FileWriter writer = new FileWriter("c:\\file.json");

or In\Output Streams..
Run Code Online (Sandbox Code Playgroud)

当我编写新代码时,有两件事吓到我了:

  1. 我\ O(特别是HD)
  2. 序列化

我尽可能地避免这两种情况.

有没有其他方法可以做到这一点?

java json file jackson gson

-1
推荐指数
1
解决办法
908
查看次数

Jackson 将 POST 参数映射到 Java POJO

我正在编写一个 Spring RESTful 服务,它使用 JSON 并执行一些操作。由于请求包含大量参数,我想到了使用 Spring 的 Jackson 映射将我的请求参数映射到 Java 对象。

我的POJO

public class RequestInput {

 private int id;
 private String name;
 // parameters follow


 // getter and setter
}
Run Code Online (Sandbox Code Playgroud)

我的控制器

@Controller
public class RequestController{

   @RequestMapping(method=RequestMethod.POST, value="/rest/postRequest")
   public void handleRequest(@RequestBody RequestInput input){
          // code follows
   }

}
Run Code Online (Sandbox Code Playgroud)

数据发布时一切正常

{“id”:1,“名称”:“ABCD”}

但是当数据发布为

{“id”:1,“first_name”:“ABCD”}

对象中名称的值作为 返回NULL

你能帮我理解如何将请求中的 first_name 映射到 Java POJO 中的 name param

rest spring json spring-mvc jackson

-1
推荐指数
1
解决办法
4650
查看次数

为什么 Jackson TypeReference 是抽象的?

为什么 Jackson 的 TypeReference 是抽象的?它通常会使用法变得更丑陋,因为您需要包含大括号来创建内联类(并且大多数 linter 强制您在同一行上没有大括号)。

https://github.com/FasterXML/jackson-core/blob/master/src/main/java/com/fasterxml/jackson/core/type/TypeReference.java

new TypeReference<Map<String, String>>() {
};
Run Code Online (Sandbox Code Playgroud)

这是由于一些晦涩的 Java 语言限制吗?

java jackson

-1
推荐指数
2
解决办法
310
查看次数

JACKSON 和 JSON 的区别?

我想知道 JACKSON 和 JSON 之间的区别?我在 android 中使用 JSON 数据格式。告诉我 JACKSON 和 JSON 的优缺点?

java android json jackson

-2
推荐指数
1
解决办法
3475
查看次数

标签 统计

jackson ×8

java ×7

json ×7

android ×1

enums ×1

file ×1

gson ×1

rest ×1

spring ×1

spring-boot ×1

spring-mvc ×1