2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
युक्तिः - लेखस्य लेखनानन्तरं सामग्रीसूचीं स्वयमेव जनयितुं शक्यते ।
@JsonProperty(value = "isReceipt")
public boolean isReceipt() {
return isReceipt;
}
@JsonProperty(value = "isExamine")
public boolean isExamine() {
return isExamine;
}
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
@JSONproperty एनोटेशनस्य उपयोगः भवतिगुणाःउपरि
@JSONField एनोटेशनस्य उपयोगः कर्तुं शक्यतेget, set, तथा गुणाःउपरि
@JSONField एनोटेशनस्य उपयोगः सरलः अस्ति ।
@JSONField एनोटेशनं अधिकानि एट्रिब्यूट् मैपिंग विकल्पान् समर्थयति, यथा क्रमाङ्कनस्य समये तिथिस्वरूपं, शून्यमूल्यानि कथं नियन्त्रितव्यानि इत्यादीनि ।
@JSONField एनोटेशनस्य कार्यक्षमता द्रुततरं भवति यतोहि fastjson स्वयं उच्च-प्रदर्शन-JSON-प्रक्रिया-पुस्तकालयः अस्ति
Jackson framework इत्यस्य उपयोगं कुर्वन्, भवान् केवलं @JsonProperty एनोटेशनस्य उपयोगं कर्तुं शक्नोति तथा च @JSONField एनोटेशनस्य उपयोगं कर्तुं न शक्नोति ।
यदि भवान् नूतनस्य उपयोगं करोतिspringboot परियोजना, पूर्वनिर्धारितं Jackson serialization अस्ति, केवलं गुणानाम् उपरि प्रत्यक्षतया टिप्पणीनां उपयोगं कुर्वन्तु ।
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
सत्तावर्गः User.java
import com.fasterxml.jackson.annotation.JsonProperty;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@JsonProperty("JsonPropertyName")
private String name;
private String sex;
private Integer age;
}
परीक्षणविधयः : १.
@Test
public void testJsonProperty() throws IOException{
//bean ---> json
User user=new User("zhangsan","man",22);
System.out.println(new ObjectMapper().writeValueAsString(user));
//json ---> bean
String str="{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}";
System.out.println(new ObjectMapper().readValue(str, User.class).toString());
}
परीक्षाफलम् : १.
{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}
User [name=zhangsan, sex=man, age=22]
द्रष्टुं शक्यते यत् बीन् json स्ट्रिंग् मध्ये परिवर्तितस्य अनन्तरं @JsonProperty इत्यनेन एनोटेटेड् बीन् गुणनाम निर्दिष्टेन गुणनाम्ना प्रतिस्थापितम् अस्ति: JsonPropertyName;
json स्ट्रिंग् इत्यस्य बीन् मध्ये परिवर्तनस्य अनन्तरं @JsonProperty एनोटेशनेन निर्दिष्टं गुणनाम bean गुणनाम्ना प्रतिस्थापितम् अस्ति: name;
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
सत्तावर्गः User.java
import com.alibaba.fastjson.annotation.JSONField;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@JSONField(name="JSONFieldName")
private String name;
private String sex;
private Integer age;
}
परीक्षणविधयः : १.
@Test
public void testSONField(){
//bean ---> json
User user=new User("zhangsan","man",22);
System.out.println(JSON.toJSONString(user));
//json ---> bean
String str="{"JSONFieldName":"zhangsan","age":22,"sex":"man"}";
System.out.println(JSON.parseObject(str, User.class).toString());
}
परीक्षाफलम् : १.
{"JSONFieldName":"zhangsan","age":22,"sex":"man"}
User [name=zhangsan, sex=man, age=22]
प्रारूपविशेषणस्य उपयोगः तिथिप्रकारस्य विशेषतानां प्रारूपं निर्दिष्टुं तथा च संख्यात्मकप्रकारानाम् स्ट्रिंग् प्रकारेषु परिवर्तनस्य प्रारूपं निर्दिष्टुं शक्यते ।
public class User {
private String name;
private int age;
@JSONField(format = "yyyy-MM-dd")
private Date birthday;
@JSONField(format = "#,###.00")
private double salary;
}
public class User {
@JSONField(serialize = false)
private int userId;
private String name;
private int age;
}
उपर्युक्ते उदाहरणे, @JSONField एनोटेशनस्य उपयोगेन userId विशेषता क्रमाङ्कनात् बहिष्कृता अस्ति
public class User {
private int userId;
private String name;
@JSONField(deserialize = false)
private int age;
}
उपर्युक्ते उदाहरणे, @JSONField एनोटेशनस्य उपयोगेन age गुणः विक्रमीकरणात् बहिष्कृतः अस्ति
गुणानाम् क्रमः क्रमिकविशेषणद्वारा निर्दिष्टुं शक्यते
public class User {
@JSONField(ordinal = 2)
private String name;
@JSONField(ordinal = 1)
private int age;
}
उपर्युक्ते उदाहरणे, @JSONField एनोटेशनस्य उपयोगः age एट्रिब्यूट् इत्यस्य क्रमं 1 इति निर्दिष्टुं भवति तथा च name एट्रिब्यूट् इत्यस्य क्रमं 2 इति निर्दिष्टुं भवति ।
defaultValue एट्रिब्यूट् इत्यस्य उपयोगः Java ऑब्जेक्ट् इत्यस्मिन् एट्रिब्यूट् इत्यस्य पूर्वनिर्धारितमूल्यं निर्दिष्टुं शक्यते ।
public class User {
@JSONField(defaultValue = "0")
private int userId;
@JSONField(defaultValue = "N/A")
private String name;
private int age;
}
उपरिष्टाद् उदाहरणे @JSONField एनोटेशनस्य उपयोगः भवति यत् userId विशेषतायाः पूर्वनिर्धारितं मूल्यं 0 अस्ति तथा च name विशेषतायाः पूर्वनिर्धारितं मूल्यं "N/A" इति निर्दिष्टुं भवति ।
public class User {
private int userId;
@JSONField(type = FieldType.STRING)
private int age;
}
उपरिष्टाद् उदाहरणे, @JSONField एनोटेशनस्य उपयोगः age एट्रिब्यूट् इत्यस्य प्रकारं स्ट्रिंग् प्रकाररूपेण निर्दिष्टुं भवति ।