2016-08-11 4 views
0

利用できない場合、このJSON可能は、それは私がこのクラスとクラスの使用のようなJavaクラスにJSONに変換するJavaクラスオブジェクトにJSONに変換するクラスが

{ 
    "age":"23", 
    "name":"srinivas", 
    "blog":"A", 
    "messages":["msg1","msg2","msg3"] 
} 

です:

public class A 
{ 
    private String name; 

    private String age; 

    private String blog; 

    private String[] messages; 

    public String getName() 
    { 
     return name; 
    } 

    public void setName (String name) 
    { 
     this.name = name; 
    } 

    public String getAge() 
    { 
     return age; 
    } 

    public void setAge (String age) 
    { 
     this.age = age; 
    } 

    public String getBlog() 
    { 
     return blog; 
    } 

    public void setBlog (String blog) 
    { 
     this.blog = blog; 
    } 

} 

答えて

0

いいえ、jsonから自動的に作成されるクラスはありません。

しかしあなたはそれが関係しています必要とされる可能性があります以下の事:あなたがサンプルコード、下のリンクからlink

抜粋、必要

String carJson = 
     "{ \"brand\" : \"Mercedes\", \"doors\" : 5," + 
     " \"owners\" : [\"John\", \"Jack\", \"Jill\"]," + 
     " \"nestedObject\" : { \"field\" : \"value\" } }"; 

ObjectMapper objectMapper = new ObjectMapper(); 


try { 

    JsonNode node = objectMapper.readValue(carJson, JsonNode.class); 

    JsonNode brandNode = node.get("brand"); 
    String brand = brandNode.asText(); 
    System.out.println("brand = " + brand); 

    JsonNode doorsNode = node.get("doors"); 
    int doors = doorsNode.asInt(); 
    System.out.println("doors = " + doors); 

    JsonNode array = node.get("owners"); 
    JsonNode jsonNode = array.get(0); 
    String john = jsonNode.asText(); 
    System.out.println("john = " + john); 

    JsonNode child = node.get("nestedObject"); 
    JsonNode childField = child.get("field"); 
    String field = childField.asText(); 
    System.out.println("field = " + field); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

クラスがまだ作成されていない場合、javaクラスオブジェクトのjsonまたはxmlを変換することは可能ですか? – user3395448

+0

jsonがJavaクラスを作成し、そのクラスを保存または使用します。 – user3395448

+0

何も起こりません。クラスと関連するゲッターセッターとプロパティを自分で作成する必要があります –

0

をあなたは技術的にクラスを作成することができます実行時:How to create a class dynamically in javaまたはCreating classes dynamically with Javaを参照してください。しかし、コードが何らかの形でAを使用したい場合は、コンパイル時に利用可能にする必要があります。コードにAを使用する必要がない場合は、なぜそれを作成しますか?コンパイル中にであるいくつかのクラスを拡張することもできますが、あなたのケースでは合理的な共通インターフェースはなく、リフレクションを使ってしかアクセスできません。

より妥当な代替案は、ビルドプロセス中に既知のJSONの例(またはいくつかのスキーマの説明よりも良い)からクラスを生成することです。繰り返しますが、これを行うには多くの方法があり、ニーズに合ったものを探すべきです。

関連する問題