2013-06-28 13 views
11

में सरणी सूची का रूपांतरण मेरे पास एक मॉडल क्लास विधि है जो ऑब्जेक्ट्स की एक सूची देता है जिसमें सभी पंजीकृत उपयोगकर्ता विवरण होते हैं। मैं सभी() विधि द्वारा पुनर्स्थापित सूची लाने और डेटा को JSON ऑब्जेक्ट में कनवर्ट करना चाहता हूं और इसे स्ट्रिंग की तरह दृश्य में भेजना चाहता हूं। मैं इस सरणी सूची का JSON ऑब्जेक्ट में यह रूपांतरण कैसे कर सकता हूं? जैक्सन सभी तरह org.json साथ परेशान न हों, का उपयोगजेसन ऑब्जेक्ट स्ट्रिंग

ObjectMapper mapper = new ObjectMapper(); 
JSONObject json = new JSONObject(); 
JsonNodeFactory jsonnode = JsonNodeFactory.instance; 
ObjectNode result = new ObjectNode(jsonnode); 
for (int i = 0; i < list.size(); i++) { 
    json.put(list.get(i).fname, list.get(i)); 
    System.out.println(json.get("fname")); 
} 

@Entity 
class Mydata extends Model { 

    @Id 
    public Long Id; 
    public String fname; 
    public String lname; 
    public String city; 
    public String state; 
    /****************** READ/select OPERATION *****************/ 
    public static Finder < Long, Mydata > finder = new Finder(Long.class, Mydata.class); 

    public static List <Mydata> all() { 
     return finder.all(); 
    } 
    public static void createuser(Mydata user) { 
     user.save(); 
    } 
} 
+0

प्रतीक्षा प्रतीक्षा प्रतीक्षा करें; आप जैक्सन और org.json मिश्रण कर रहे हैं यहाँ! – fge

+0

संभावित डुप्लिकेट http://stackoverflow.com/questions/5813434/trouble-with-gson-serializing-an-arraylist-of-pojos –

+0

[json वस्तु स्ट्रिंग के लिए सरणी सूची के रूपांतरण] [1] [1]: http://stackoverflow.com/questions/4841952/convert-arraylistmycustomclass-to-jsonarray/30193029#30193029 –

उत्तर

1

:

मैं नीचे से ऐसा करने में असमर्थ था

// list is a List<MyData> 
final ObjectMapper mapper = new ObjectMapper(); 
final Map<String, MyData> map = new HashMap<>(); 
for (final MyData data: list) 
    map.put(data.fname, data); 
final JsonNode json = mapper.valueToTree(map); 
18

Json करने के लिए ArrayList बदलने के लिए, बस डाउनलोड से मुक्त स्रोत json उपयोगिता: http://json.org/java/ या जार फ़ाइल here

और बस से कार्य करें:

JSONArray jsonAraay = new JSONArray(your_array_list); 

यह है कि

ध्यान दें: आप अपने POJO/मॉडल कक्षा में सेटर/गेटर होना चाहिए

0

आप यहाँ दूसरों की तरह तीसरे पक्ष के पुस्तकालयों के सभी प्रकार के इस्तेमाल कर सकते हैं सुझाव दिया है JSON के लिए ArrayList कन्वर्ट करने के लिए, या सिर्फ इस बात के लिए प्ले के अपने सरल तरीके (play.libs.Json में पाया) जो जैक्सन की वस्तुओं के साथ काम करता है का उपयोग करें, लेकिन यह ढांचे में एकीकृत है और उपयोग करने के लिए, उदाहरण के लिए एक बहुत कम कोड की आवश्यकता है:

JsonNode myJsonNode = Json.toJson(MyListObject); जो एक सूची धर्मान्तरित JsonNode ऑब्जेक्ट, फिर इसे स्ट्रिंग प्रस्तुति में बदलने के लिए String jsonResult = Json.stringify(myJsonNode); जैसे कुछ का उपयोग करें।

यदि आप टेम्पलेट में JSON का उपयोग कर रहे हैं, तो इसे @Html(myJsonString) जैसे कुछ में लपेटना न भूलें, इसलिए यह कुछ भी नहीं बच पाएगा। अन्यथा, यदि आप ब्राउज़र पर शुद्ध JSON को आउटपुट कर रहे हैं, तो एक साधारण return ok(jsonResult); काम करेगा क्योंकि Play स्वचालित रूप से सामग्री प्रकार सेट करेगा।

संदर्भ लिंक: http://www.playframework.com/documentation/api/2.0/java/play/libs/Json.html

+0

हाय नेटिजन, मैं जावा विधि से डेटा पास करने की कोशिश कर रहा हूं (जेसन सरणी स्ट्रिंग के रूप में) मेरे विचार के लिए। तो अनिवार्य रूप से मैं सूची सूची को जेसन ऑब्जेक्ट सरणी में बदलने के लिए "जावा" फ़ंक्शन ढूंढ रहा हूं .... – pret

+0

जो मैंने पोस्ट किया है वह आपके लिए करना चाहिए - यह जावा सूची ऑब्जेक्ट को JSON स्ट्रिंग में परिवर्तित करता है, जिसका अर्थ तब किया जाता है जावास्क्रिप्ट दुभाषिया द्वारा JSON सरणी के रूप में आपका टेम्पलेट (जब तक आप दिखाए गए कुछ भी नहीं बचते)। आप परिणामी JSON डेटा सीधे टेम्पलेट में डाल सकते हैं या इसे ऊपर दिखाए गए शुद्ध टेक्स्ट के रूप में फ़ीड करने के लिए AJAX API बना सकते हैं।किसी भी तरह से, जो मैंने ऊपर रखा है, वह आपके लिए काम करना चाहिए यदि मैं समझता हूं कि आपका क्या मतलब है। धन्यवाद। –

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