2013-11-24 44 views
1

我正在開發一個android應用程序,我試圖以這種JSON格式獲得UPC的價值..但是遇到了麻煩..我可以使用以下版本獲取過敏原值:Android Java - 獲取JSON值

JSONObject jObj = new JSONObject(data); 
JSONArray jsonData = jObj.getJSONArray("allergens"); 

但由於某種原因,我似乎無法獲得UPC值..任何幫助將不勝感激!

JSON:

{ 
"upc": "028400071932", 
"product_name": "CRUNCHY CHEESE", 
"canStoreName": "false", 
"processedIngredients": "", 
"allergens": [{ 
    "allergen_name": "Cereals", 
    "allergen_value": 2, 
    "allergen_red_ingredients": "CORN, Corn, Maltodextrin, CORN MEAL, ENRICHED CORN MEAL", 
    "allergen_yellow_ingredients": "VEGETABLE OIL, CITRIC ACID, MONOSODIUM GLUTAMATE, Natural and Artificial Flavors" 
}, { 
    "allergen_name": "Shellfish", 
    "allergen_value": 0, 
    "allergen_red_ingredients": "", 
    "allergen_yellow_ingredients": "" 
}], 
"ingredients": "ENRICHED CORN MEAL (CORN MEAL, FERROUS SULFATE, NIACIN, THIAMIN MONONITRATE, RIBOFLAVIN, AND FOLIC ACID), VEGETABLE OIL (CORN, SOYBEAN CANOLA, AND/OR SUNFLOWER OIL), WHEY, CHEDDAR CHEESE (MILK, CHEESE CULTURES, SALT, ENZYMES), SALT, SEA MINERALS(CALCIUM CARBONATE AND MAGNESIUM CARBONATE), MALTODEXTRIN (MADE FROM CORN), WHEY PROTEIN CONCENTRATE, MONOSODIUM GLUTAMATE, NATURAL AND ARTIFICIAL FLAVORS LACTIC ACID, CITRIC ACID, AND ARTIFICIAL COLOR (YELLOW 6, YELLOW 5)." 
} 
+0

所以,在這裏是一種嘗試,以獲得UPC值的代碼?當執行這個代碼時會發生什麼? –

+0

這是問題..我沒有代碼..我嘗試了一些不同的東西,但總是得到錯誤:「。字符串不能轉換爲JSONOBject」 – user3028945

+0

因此,請告訴我們您嘗試的代碼和確切和完整你得到的錯誤,以便我們可以向你解釋爲什麼它是錯誤的以及如何解決它。給你一個你不明白的解決方案不會讓你學到任何東西。 –

回答

2
{ // json object node 
"upc": "028400071932",// string 

{表示JSON對象節點

[表示JSON數組節點

因此,使用

JSONObject jObj = new JSONObject(data); 
String value = jObj.getString("upc"); 

又如

"allergens": [ // jsonarray allergens 
    {   // json object 
    "allergen_name": "Cereals", // string 

因此,要獲得allergen_name

JSONArray jsonData = jObj.getJSONArray("allergens"); 
for(int i=0;i<jsonData.length();i++) 
{ 
    JSONObject jb = (JSONObject) jsonData.get(i); 
    String allergenname = jb.getString("allergen_name"); 
} 
+0

非常感謝Raghunandan ..我是一位PHP開發人員,第一次爲Java提供了一個鏡頭,而且您一直都非常樂於助人! – user3028945

0

嘗試這種情況:

String value = jObj.getString("upc"); 
+0

謝謝..只是試過,並得到錯誤: 11-24 11:09:16.242:W/System.err(1469):org.json.JSONException:價值028400071932類型java.lang.String的upc不能轉換爲JSONObject – user3028945

+0

這是錯誤的。 '{'represetns json objectnode和這個 「upc」:「028400071932」,是一個字符串 – Raghunandan

+0

@ user3028945使用'String value = jObj.getString(「upc」);' – Raghunandan