2012-04-20 26 views
5

Huzursuz JSON Hizmeti için bir sonraki soru. Marshal a java.util.Map <String, Dize>

import java.util.Map; 

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlRootElement; 

/** 
* @author Martin Burchard 
* 
*/ 
@XmlRootElement(name = "user") 
@XmlAccessorType(XmlAccessType.FIELD) 
public class User { 
    private String id; 
    private String nickname; 
    private String email; 
    private String password; 
    private Map<String, String> user_attributes; 

} 

Şu servisi (daha iyi okumak için girintili) aşağıdaki JSON sunar:

komik düşünce içten num 123 bir java.lang.String dir,
{ 
    "user" : { 
     "id" : "9bdf40ea-6d25-4bc3-94ad-4a3d38d2c3ca", 
     "email" : "[email protected]", 
     "password" : "xXpd9Pl-1pFBFuX9E0hAYGSDTyJQPYkOtXGvRCrEtMM", 
     "user_attributes" : { 
      "entry" : [{ 
        "key" : "num", 
        "value" : 123 
       }, { 
        "key" : "type", 
        "value" : "nix" 
       } 
      ] 
     } 
    } 
} 

...

Ben bu JSON sahip olmak ister burada http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-DealingwithJSONarrayserializationissues

açıklanmıştır anlamıyorum:

{ 
    "user" : { 
     "id" : "9bdf40ea-6d25-4bc3-94ad-4a3d38d2c3ca", 
     "email" : "[email protected]", 
     "password" : "xXpd9Pl-1pFBFuX9E0hAYGSDTyJQPYkOtXGvRCrEtMM", 
     "user_attributes" : { 
      "num" : "123", 
      "type" : "nix" 
     } 
    } 
} 

JSON sağlayıcıyı Jackson'a değiştirdim. Hoşuma gibi Şimdi benim JSON

+0

Bir haritaya ihtiyacınız olduğuna emin misiniz? Kullanıcı özellikleri adı verilen bir nesneyiniz olamaz ve kullanıcı özelliklerinin bir listesi var mı? –

+0

Ek özelliklerim her zaman bir ad ve bir değer içerir ve bir veritabanında depolandıkları için her zaman dizgidirler. Basit bir Harita yeterli olacağını düşündüm. Bunun yerine bir List ve bir Attribute Object ismini ve değerini kullanarak kullanmalı mıyım? – Nabor

cevap

1

gibi JAXB XMLAdapter kullanmaktır aklıma gelen tek şey uygun bir JSON kitaplığı kullanın ... görünüyor. Belirli bir nesnenin (sizin durumunuzda) JSON dizgisine nasıl eşleneceğini tanımlayabilirsiniz.

İlgili konular