वह डेटा जिसे आप MySQL से खींच रहे हैं उचित नहीं है JSON प्रारूप और युगल की एक सरणी में परिवर्तित नहीं किया जा सकता है। एक JSONArray JSONObject . का एक संग्रह है एस। अभी आपको वही मिल रहा है जो एक Array प्रतीत होता है [9.32, 5.22, 10.201 ...] की तरह स्वरूपित
आपके पास एक JSONArray होना चाहिए जिसमें JSONObjects . है
points:[{1:9.32},{2:5.22}]
फिर आप JSONObjects को निकाल सकते हैं JSONArray . से और सीधे संख्या मानों तक पहुंचें
JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");
पूरे JSONArray . पर चलने के लिए आप इसे आसानी से लूप में बदल सकते हैं मूल्यों का
अपडेट - PHP समस्याएं
आपकी स्ट्रिंग उचित JSON में वापस नहीं आ रही है format क्योंकि आप पूरे परिणाम को डंप कर रहे हैं यदि आपकी क्वेरी एक ही सरणी में है। कुछ इस तरह का प्रयास करें:
$outerObject = array();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
$numResult = count($result);
for($i = 0; $i < $numResult; $i++){
$indexDouble = result[$i];
$innerObject = array();
$innerObject['double'] = $indexDouble;
$outerObject[] = $innerObject;
}
$json = array();
$json['metoxes'] = $outerObject;
echo json_encode($json);
मैं पहले इसका परीक्षण करूंगा लेकिन विचार यह है कि आपको JSONArray क्या बनाना होगा और फिर इसमें छोटे आंतरिक सरणियाँ जोड़ें जो JSONObject . बन जाएंगी . जब आप json_encode करते हैं कि आपके पास वस्तुओं के साथ एक सरणी [] होगी {डबल:some_number}। निकालने के लिए, आपको केवल JSONArray . के माध्यम से लूप करना है और कुंजी मान डबल से जुड़े प्रत्येक डबल को प्राप्त करें। यह कुछ इस तरह काम करेगा:
JSONArray fullArray = JSONArray(stringInput);
int length = fullArray.length;
for(int i = 0; i < length; i++){
double target = fullArray.getJSONObject(i).getDouble("double");
//do something with the double
}