Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJacksonAPIを使用した@JsonRawValueアノテーションの使用は何ですか?


@JsonRawValue アノテーションは、メソッドとフィールドの両方に使用して、宣言されたとおりにフィールドまたはプロパティをシリアル化できます。たとえば、JavaクラスにStringフィールドがある場合、JSON値は引用符で囲まれます(“ " )。ただし、フィールドに @JsonRawValueで注釈を付ける場合 注釈、ジャクソンライブラリは引用符を省略します。

構文
@Target(value={ANNOTATION_TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface JsonRawValue

以下の例では、 empAddress フィールドはJSON文字列です。このJSON文字列は、従業員の最終的なJSON文字列の一部としてシリアル化されます オブジェクト。

import com.fasterxml.jackson.annotation.JsonRawValue;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
public class JsonRawValueAnnotationTest {
   public static void main(String args[]) throws JsonProcessingException {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(new Employee());
      System.out.println(jsonString);
   }
}
// Employee class
class Employee {
   public int empId = 115;
   public String empName = "Sai Chaitanya";
    @JsonRawValue
   public String empAddress = "{\"doorNumber\": 1118, \"street\": \"IDPL Colony\", " + "\"city\":          \"Hyderabad\"}";
}
>

出力

{
 "empId" : 115,
  "empName" : "Sai Chaitanya",
  "empAddress" : {"doorNumber": 1118, "street": "IDPL Colony", "city": "Hyderabad"}
}

  1. JavaのJacksonを使用してJSONのフィールド名を変更するにはどうすればよいですか?

    ジャクソンアノテーション@JsonProperty シリアル化中にプロパティまたはメソッドで使用されます または逆シリアル化 JSON 。オプションの「名前」が必要です ’パラメータ これは、プロパティ名が「キー」と異なる場合に役立ちます ’名前 JSON 。デフォルトでは、キー名がプロパティ名と一致する場合、値はプロパティ値にマップされます。 以下の例では、フィールド名を変更できます @JsonPropertyアノテーションを使用したJSONで 。 例 import java.io.IOException; import com.fasterxml.jackson.databind.

  2. JavaでのStringWriterの重要性は何ですか?

    StringWriter クラスはライターのサブクラスです クラスとそれは文字列を出力ストリームに書き込みます。文字列を書き込むために、この文字ストリームは文字列を文字列バッファに収集します 次に、文字列を作成しました。 StringWriterのバッファは、データに応じて自動的に大きくなります。 StringWriterクラスの重要なメソッドは、 write()、append()、getBuffer()です。 、 flush() およびclose() 。 構文 public class StringWriter extends Writer 例 import java.io.*; publ