2011-06-23 19 views
15

में कनवर्ट नहीं कर सकता है आप इस स्ट्रिंग को gson में कैसे परिवर्तित करते हैं। जेसनअरे?स्ट्रिंग को JsonArray

com.google.gson.*; 
public static void main(String[] args) 
    { 
     //Declared S here 
     System.out.println("String to Json Array Stmt"); 
     JsonParser parser = new JsonParser(); 
     JsonElement tradeElement = parser.parse(s.toString()); 
     JsonArray trade = tradeElement.getAsJsonArray(); 
     System.out.println(trade); 
    } 

यह वह जगह है जिस तरह से JSonArray को यह संग्रह स्ट्रिंग परिवर्तित करने के लिए:

String s= "[["110917 ", 3.0099999999999998, -0.72999999999999998, 2.8500000000000001, 2.96, 685.0, 38603.0], ["110917 ", 2.71, 0.20999999999999999, 2.8199999999999998, 2.8999999999999999, 2987.0, 33762.0]]"; 

यह मेरा कोड है?

+0

आप किस लाइब्रेरी का उपयोग कर रहे हैं? –

+0

com.google.gson.JsonArray; लाइब्रेरी मैं इसका उपयोग कर रहा हूं (जीएसएन) – Nava

उत्तर

31

अपने JSON सरणी के अंदर एक स्ट्रिंग मान रखने के लिए, आपको अपने जावा प्रोग्राम में अपने डबल-कोट्स से बचने के लिए बैकस्लैश करना याद रखना चाहिए। नीचे की घोषणा देखें।

String s = "[[\"110917  \", 3.0099999999999998, -0.72999999999999998, 2.8500000000000001, 2.96, 685.0, 38603.0], [\"110917 \", 2.71, 0.20999999999999999, 2.8199999999999998, 2.8999999999999999, 2987.0, 33762.0]]"; 

मुख्य() विधि में आपका कोड ठीक काम करता है। नीचे मुख्य() विधि में आपके कोड का मामूली संशोधन है।

System.out.println("String to Json Array Stmt"); 
JsonParser parser = new JsonParser(); 
JsonElement tradeElement = parser.parse(s); 
JsonArray trade = tradeElement.getAsJsonArray(); 
System.out.println(trade); 

अंत में, अपने बयान उपसर्ग के लिए कीवर्ड "आयात" के साथ, जिन्हें आप नीचे याद "com.google.gson। *"।

import com.google.gson.*; 
+0

यहां टाइपो को प्रश्न में आयात के लिए गलत लगाया गया है। स्रोत में व्यावहारिक रूप से जोड़ा गया .. धन्यवाद – Nava

+0

क्या यह जेसनअरे को विभाजित करना संभव है? – Nava

+0

आपका मतलब है कि पहला तत्व ([\ "110 9 17 \", 3.00 99 99 99 99 99 99 8, -0.72 99 99 99 99 99 998, 2.8500000000000001, 2.96, 685.0, 38603.0]) जेसनएरे "व्यापार" का मतलब है? "Trade.get (0)" का उपयोग करने का प्रयास करें। – AaronYC

6

मुझे समस्या नहीं दिखाई दे रही है। इस कोड मेरे लिए ठीक चलाता है:

import com.google.gson.JsonArray; 
import com.google.gson.JsonElement; 
import com.google.gson.JsonParser; 


public class GsonExample { 
    public static void main(String[] args) { 
     String s= "[[\"110917\", 3.0099999999999998, -0.72999999999999998," + 
       "2.8500000000000001, 2.96, 685.0, 38603.0], [\"110917\", 2.71," + 
       "0.20999999999999999, 2.8199999999999998, 2.8999999999999999," + 
       "2987.0, 33762.0]]"; 


     JsonParser parser = new JsonParser(); 
     JsonElement elem = parser.parse(s); 

     JsonArray elemArr = elem.getAsJsonArray(); 
     System.out.println(elemArr); 
    } 
} 

केवल समस्या शायद यह है कि आप ठीक ढंग से अपने रों स्ट्रिंग शाब्दिक में दोहरे उद्धरण चिह्नों से बचने के लिए विफल रहा है।

+0

क्या मुझे पता है कि हमें स्ट्रिंग के सामने/(पिछड़ा स्लैश) जोड़ने की आवश्यकता क्यों है? – Nava

+0

बस मुझे केवल जेएसएस सरणी के रूप में पहली सूची चाहिए? क्या यह पारित करना संभव है? – Nava

+0

स्लैश "चरित्र से बचने के लिए है। यदि आप ऐसा नहीं करते हैं तो संकलक यह नहीं जानता कि आप स्ट्रिंग को समाप्त करने का इरादा नहीं कर रहे हैं उदाहरण के लिए बंद करें"। यहां देखें: http://en.wikipedia.org/wiki/Escape_character –

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