2012-08-09 31 views
5

का उपयोग कर जेसन फ़ाइल को पार्स करने में मदद की ज़रूरत है संपादित करें: मैंने इसे आसान बनाने के लिए जेसन फ़ाइल की शैली बदल दी है क्योंकि मैं पुराने संस्करण के साथ काम नहीं कर सका। मुझे जावा में लक्ष्यों की एक सरणी बनाने में सक्षम होना चाहिए जहां सरणी में प्रत्येक तत्व का नाम target_Name के मान के रूप में है। मुझे अलग-अलग ऑब्जेक्ट नाम रखने वाले लक्ष्य नामों को दोहराने में भी सक्षम होना चाहिए। इसलिए मूल रूप से मैं एक लक्ष्य सरणी चाहता हूं और प्रत्येक तत्व के भीतर मैं टाइप, पिन_नंबर और क्षमताओं वाले ऑब्जेक्ट्स की एक सरणी रखना चाहता हूं।जीसन

मुझे पता है कि मुझे लक्ष्य सूची वर्ग और लक्ष्य नाम और अन्य सभी चीज़ों के लिए उस चर के भीतर बनाना पड़ सकता है। मैंने पहले ऐसा कुछ करने की कोशिश की है, लेकिन मुझे यह पता लगाने में परेशानी थी कि यह कैसे काम करेगा।

{ 
"Targets": [ 
    { 
     "Target_Name": "----", 
     "Object_Name": "----", 
     "Type": "----", 
     "Pin_Number": "----", 
     "Capabilities": "----" 
    }, 
    { 
     "Target_Name": "----", 
     "Object_Name": "----", 
     "Type": "----", 
     "Pin_Number": "----", 
     "Capabilities": "----" 
    }, 
    { 
     "Target_Name": "----", 
     "Object_Name": "----", 
     "Type": "----", 
     "Pin_Number": "----", 
     "Capabilities": "----" 
    }, 
    { 
     "Target_Name": "----", 
     "Object_Name": "----", 
     "Type": "----", 
     "Pin_Number": "----", 
     "Capabilities": "----" 
    } 
] 

}

+1

क्या एक गर्मजोशी से स्वागत मेरे दोस्त stackoverflow करने जा रहा है @CodeDroid। शायद पहले गैर-टाइमर के लिए इसे बचाओ? –

उत्तर

2

यह बहुत सीधे आगे है, तो निम्न कुछ कोड कैसे लोड और नोड्स को पढ़ने के लिए है है। यह आपको यह जानने में मदद करेगा कि आपके डेटा को कैसे क्वेरी करें।

Reader reader = null; 
InputStream stream = context.getResources() 
    .openRawResource(R.raw.json_file); 
reader = new BufferedReader(new InputStreamReader(stream), 8092); 

// parse json 
JsonParser parser = new JsonParser(); 
JsonObject jsonObj = (JsonObject)parser.parse(reader); 

// आपके json पार्स करने और निम्नलिखित

JsonArray targets= jsonObj.getAsJsonArray("Targets"); 

List<Target> targetList = new ArrayList<Target>(); 
for (JsonElement target: targets) { 

    JsonObject targetObject = target.getAsJsonObject(); 
    String targetName= targetObject.get("Target_Name").getAsString(); 
    ....//get the rest 

    // create target object 
    targetList.add(new Target(targetName, ....)); 
} 

// कैसे मूल्यों को पढ़ने के लिए के उदाहरण क्वेरी तरह देखने के लिए वस्तुओं

for (Entry<String, JsonElement> entry : rootElem.entrySet()) 
{ 
    int key = Integer.parseInt(entry.getKey()); 
    JsonObject jsonObject = entry.getValue().getAsJsonObject(); 
} 


// get integer element 
int key = Integer.parseInt(entry.getKey()); 

// get child object 
JsonObject jsonObject = entry.getValue().getAsJsonObject(); 

// get string element   
String title = jsonObject.get("Object_Name").getAsString(); 
+0

फ़ाइल एक rawresource नहीं है। मेरे पास Google क्लाउड के लिए एक HTTP कनेक्शन है और जेसन फ़ाइल में यूआरएल है। समस्या इस फ़ाइल को पार्स कर रही है और बाद के उपयोग के लिए उन चरों को सहेज रही है। मैं उन अन्य चीजों को लागू करने की कोशिश करूंगा जो आपने उल्लेख किया है। – zms6445

+0

@ user1586194 इससे कोई फर्क नहीं पड़ता कि जेसन फ़ाइल का स्रोत क्या है, इसे कहीं भी रीडर या बस स्ट्रिंग से पढ़ें और JsonParser.parse() विधि को दें। – Maxim

+0

क्या जेसन पार्सर और जेसनऑब्जेक्ट जेसन क्लास का हिस्सा नहीं है जो एंड्रॉइड एसडीके में शामिल है? क्या जीसन के बराबर है? – zms6445

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