2012-06-26 15 views
15

मुझे एक ऑब्जेक्ट में JSON unmarshal JSON करने का प्रयास करने में एक GSON त्रुटि मिल रही है। त्रुटि (अपेक्षित BEGIN_OBJECT लेकिन लाइन 3 कॉलम 22 पर STRING था) नीचे दिए गए इनपुट की पंक्ति 3 पर इंगित कर रहा है।जीएसओएन: अपेक्षित BEGIN_OBJECT लेकिन STRING

क्या मैंने बीन के संबंध में JSON को सही तरीके से मैप नहीं किया है?

import javax.xml.bind.JAXBElement; 

public class BusinessPartnerCreate { 
    protected JAXBElement<String> partnerType; 
    protected Person person; 
    protected Company company; 
    protected String email; 
    protected String phone; 
    protected AddressData addressData; 
    protected AddressClean addressClean; 
    protected String city; 
    protected String state; 
    protected String zipCode; 
    protected JAXBElement<String> externalId; 
} 

और मेरे इनपुट JSON लग रहा है यह है:

{ 
    "business-partner-create": { 
     "partner-type": "1", 
     "person": { 
      "firstName": "Dirk", 
      "lastName": "Wintermill", 
      "title": "" 
     }, 
     "email": "[email protected]", 
     "phone": "219-385-2946", 
     "addressClean": { 
      "house-number": "10218", 
      "street-name": "Park", 
      "street-abbr": "Rd" 
     }, 
     "city": "Somerset", 
     "state": "NJ", 
     "zip-code": "01955" 
    } 
} 

उत्तर

18

नहीं, आप इसे सही ढंग से के रूप में अपने json वस्तु नहीं है एक BusinessPartnerCreate, यह एक BusinessPartnerCreate शामिल मैप नहीं है।

तुम बस संपुटित करने के लिए एक वर्ग बना सकते हैं अपने BusinessPartnerCreate लेकिन यह

JsonParser parser = new JsonParser(); 
JsonObject obj = parser.parse(json).getAsJsonObject(); 

का उपयोग कर एक jsonObject के रूप में कंटेनर deserialize करने के लिए और फिर

BusinessPartnerCreate bpc = gson.fromJson(obj.get("business-partner-create"), BusinessPartnerCreate.class); 

और मैं का उपयोग कर रोचक सामग्री पार्स क्लीनर होगा सुझाव है कि partnerType फ़ील्ड के उचित मानचित्रण को सुनिश्चित करने के लिए आप एक एनोटेशन जोड़ें:

@SerializedName "partner-type" 
    protected JAXBElement<String> partnerType; 

(और ज़िप कोड के लिए समान)

संबंधित मुद्दे