JSON से Java

JSON को Java POJO, DTO या model class में तेज़ी से बदलें और बना हुआ कोड सीधे IDE में ले जाएँ। पूरी प्रक्रिया ब्राउज़र में लोकल चलती है।

संबंधित सुझाव

JSON से Java कन्वर्टर क्या करता है?

JSON से Java कन्वर्टर JSON की संरचना का विश्लेषण करके उसे मानक Java POJO classes में बदल देता है। इससे package, import, private fields, getter और setter हाथ से लिखने का दोहराव कम हो जाता है।

यह Spring Boot, Android, MyBatis और बाहरी API integration में खास तौर पर उपयोगी है, जहाँ किसी sample JSON को तुरंत Java model में बदलना होता है। Nested object अलग classes बन जाते हैं और arrays को `List<T>` के रूप में मैप किया जाता है।

GeekFormat का टूल Gson, Jackson, Fastjson, Lombok, Serializable, Builder, field naming strategy और ZIP download को सपोर्ट करता है। तैयार कोड को सीधे प्रोजेक्ट में उपयोग किया जा सकता है।

उपयोग के मामले

  • Spring Boot API के sample JSON को DTO और VO में बदलना
  • Android या Java clients के लिए API response से JavaBean बनाना
  • बाहरी services के integration के लिए Jackson / Gson models जल्दी तैयार करना
  • Lombok के जरिए छोटे POJO बनाकर boilerplate कम करना
  • जटिल nested JSON को समझने योग्य Java classes में तोड़ना
  • सभी classes को ZIP में डाउनलोड करके IDE में import करना

उपयोग कैसे करें

  1. JSON को बाईं तरफ पेस्ट करें, sample लोड करें या `.json` / `.txt` file import करें
  2. Settings में root class name, package, annotation library, naming strategy और Lombok / Serializable options सेट करें
  3. Auto generation का इंतज़ार करें या Convert दबाकर दाईं तरफ बनी Java classes देखें
  4. ज़रूरी classes कॉपी करें या Download ZIP से सब कुछ डाउनलोड करें

विशेषताएं

  • कई annotation libraries का समर्थन: Gson, Jackson, Fastjson और Lombok
  • Lombok से संक्षिप्त कोड: `@Data`, `@Builder` और constructor विकल्पों से boilerplate कम करें
  • Field naming strategies: मूल नाम रखें या snake_case को camelCase में बदलें
  • Nested class auto-generation: JSON के अंदर के object अपने अलग Java class में बदलते हैं
  • Arrays को List<T> बनाना: array के elements का type अपने आप अनुमानित होता है
  • अतिरिक्त code options: `toString`, `equals`, `hashCode`, Serializable और constructors चुने जा सकते हैं
  • सभी files का ZIP download: कई `.java` files को package structure के साथ सहेजें
  • लोकल ब्राउज़र प्रोसेसिंग: JSON parsing, code generation और ZIP packing सब ब्राउज़र में होता है

कोड उदाहरण

JavaScript से JSON value के आधार पर Java type निकालने का उदाहरण

javascript
function toJavaFieldType(value) {
  if (value === null) return 'Object';
  if (Array.isArray(value)) return 'List<Object>';
  if (typeof value === 'number') return Number.isInteger(value) ? 'Integer' : 'Double';
  if (typeof value === 'boolean') return 'Boolean';
  if (typeof value === 'string') return 'String';
  if (typeof value === 'object') return 'NestedType';
  return 'Object';
}

console.log(toJavaFieldType({ id: 1 }.id));
// => Integer

Python में JSON से Java fields बनाने का उदाहरण

python
import json

def java_type(value):
    if value is None:
        return 'Object'
    if isinstance(value, bool):
        return 'Boolean'
    if isinstance(value, int):
        return 'Integer'
    if isinstance(value, float):
        return 'Double'
    if isinstance(value, str):
        return 'String'
    if isinstance(value, list):
        return 'List<Object>'
    if isinstance(value, dict):
        return 'NestedType'
    return 'Object'

sample = json.loads('{"name":"Alice","age":18}')
for key, value in sample.items():
    print(f'private {java_type(value)} {key};')

जनरेटेड Lombok POJO का उदाहरण

java
import lombok.Data;
import lombok.Builder;

@Data
@Builder
public class User {
    private Integer id;
    private String name;
}

सामान्य प्रश्न

JSON को Java POJO में कैसे बदलें?

JSON को बाएँ पैनल में पेस्ट करें, फिर टूल अपने आप या Convert बटन से Java classes बना देगा। इसके बाद आप class को कॉपी कर सकते हैं या पूरा ZIP डाउनलोड कर सकते हैं।

कौन-कौन से annotations समर्थित हैं?

यह `@SerializedName` (Gson), `@JsonProperty` (Jackson), `@JSONField` (Fastjson), और Lombok के `@Data`, `@Builder` जैसे annotations को सपोर्ट करता है।

Nested JSON objects का क्या होता है?

हर nested object एक अलग Java class में बदल जाता है, और parent class उसमें उस type का field रखती है। इससे गहरे data structures भी संभालना आसान हो जाता है।

क्या arrays अपने आप List<T> बन जाते हैं?

हाँ। String arrays `List<String>` बनते हैं, object arrays `List<User>` जैसे बन सकते हैं। खाली arrays आम तौर पर `List<Object>` के रूप में लिए जाते हैं।

क्या snake_case को camelCase में बदला जा सकता है?

हाँ। camelCase strategy चुनने पर `user_name` को `userName` बनाया जाता है, और ज़रूरत हो तो annotation में मूल JSON key भी रखा जा सकता है।

Lombok mode में कैसा कोड बनता है?

Lombok चालू होने पर टूल `@Data`, `@Builder`, `@NoArgsConstructor`, `@AllArgsConstructor` जैसी annotations के साथ छोटा class बनाता है और manual getter/setter हट जाते हैं।

क्या यह आउटपुट Spring Boot में काम करेगा?

हाँ। Jackson या Lombok चुनने पर बनी classes Spring Boot के DTO, request/response model और सामान्य bean usage के लिए उपयुक्त होती हैं।

क्या मेरा JSON सर्वर पर अपलोड होता है?

नहीं। सब कुछ ब्राउज़र के भीतर लोकल प्रोसेस होता है, इसलिए आंतरिक या संवेदनशील JSON के साथ भी अधिक भरोसे से काम किया जा सकता है।

समस्या निवारण

Invalid JSON error आ रही है

पहले JSON syntax जाँचें। extra comma, single quote या बिना quotes वाली keys को JSON Repair से ठीक किया जा सकता है।

Array type उम्मीद के मुताबिक detect नहीं हो रहा

खाली arrays या mixed-type arrays अक्सर `List<Object>` बन जाते हैं। बेहतर परिणाम के लिए representative element को पहले रखें।

Field names अभी भी snake_case में हैं

हो सकता है Settings में strategy अभी भी `asis` हो। इसे camelCase पर बदलकर फिर से generate करें।

IDE में Lombok code काम नहीं कर रहा

प्रोजेक्ट में Lombok dependency जोड़ें और IDE में annotation processing या Lombok plugin चालू करें।

बहुत बड़ा JSON बहुत अधिक classes बना रहा है

बहुत बड़े structures को हिस्सों में बाँटकर अलग-अलग generate करना ज़्यादा आसान रहता है। ज़रूरत हो तो कई root models का उपयोग करें।

शब्दकोश

POJO
Plain Old Java Object, यानी सामान्य Java object जो किसी framework पर बहुत अधिक निर्भर नहीं होता और JSON models में खूब उपयोग होता है।
JavaBean
पारंपरिक Java class format जिसमें private fields, getter/setter और आमतौर पर खाली constructor होता है।
DTO
Data Transfer Object, डेटा को layer, service या API के बीच ले जाने के लिए उपयोग की जाने वाली class।
Lombok
Java library जो annotations की मदद से getter, setter, builder और अन्य boilerplate code बनाती है।
@JsonProperty
Jackson annotation जो JSON key को Java field से मैप करती है।
@SerializedName
Gson annotation जो JSON key का मूल नाम बनाए रखते हुए Java field से मैपिंग करती है।
Serializable
Java marker interface जो object को serialize करने की अनुमति देता है ताकि उसे store या transfer किया जा सके।
List<T>
Java का generic collection type जो JSON arrays को दर्शाने के लिए आमतौर पर इस्तेमाल होता है।

JSON types और Java types का mapping

JSON valueJava typeविवरण
"Alice"Stringसामान्य string
18Integerपूर्णांक
3.14Doubleदशमलव संख्या
[{...}]List<User>object array → List<T>

Annotation library चुनने की गाइड

Libraryमुख्य annotationउपयुक्त उपयोग
Jackson@JsonPropertySpring Boot का डिफ़ॉल्ट JSON mapping
Gson@SerializedNameAndroid और lightweight serialization
Fastjson@JSONFieldFastjson आधारित Java projects
Lombok@Data / @Builderकम boilerplate वाला छोटा POJO

Authoritative References