22

ObjectMapperスペシャリストを作成する必要があり、プロセスを開始するためのサンプルコードが見つからないと思います。

JSONの作成者はプロパティを使用.Netpublicているため、大文字のイニシャルを持つフィールド名を使用します。JSONをPOJOに解析しているので、小文字のイニシャルを使用したいと思います。

最後に:

    public class Facet
    {
        public string Name { get; set; }
        public string  Value { get; set; }
    }

したがって、私の最後には、次のものが必要です。

    public class Facet {
        public String Name;
        public String Value;
    }

私は大いに好むでしょう:

    public class Facet {
        public String name;
        public String value;
    }

私はこれがで行うことができるということは正しいObjectMapperですか?

4

4 に答える 4

27

最初の問題は、@JsonProperty注釈を使用して非常に簡単に対処できます。

// java-side class
public class Facet
{
    @JsonProperty("Name")
    public String name;

    @JsonProperty("Value")
    public String value;
}

これで、ObjectMapper大文字と小文字が異なるフィールド名が一致します。クラスに注釈を追加したくない場合は、代わりに Mix-in クラスを作成できますFacet

public class FacetMixIn
{
    @JsonProperty("Name")
    public String name;

    @JsonProperty("Value")
    public String value;
}

objectMapper.getDeserializationConfig().addMixInAnnotations(Facet.class, FacetMixIn.class);

これは、クラスに追加の注釈を必要とせずに、同じことを実現しますFacet

于 2012-09-14T18:19:43.910 に答える
15

各フィールドに注釈を付ける代わりにObjectMapper、ビルトインまたはカスタムのPropertyNamingStrategyを使用するように Jackson を構成して、Java プロパティ/フィールド名と JSON 要素名の間に一貫した変換を適用できます。

例えば:

myObjectMapper.setPropertyNamingStrategy(PascalCaseStrategy);
于 2013-01-02T21:25:24.740 に答える