Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách chuyển một ArrayList sang một hoạt động khác và chuyển đổi nó thành double

Dữ liệu bạn đang lấy từ MySQL không đúng JSON định dạng và không thể được chuyển đổi thành một mảng gấp đôi. Một JSONArray là tập hợp của JSONObject S. Ngay bây giờ, bạn đang nhận được những gì có vẻ như là một Array có định dạng như [9.32, 5.22, 10.201 ...]

Những gì bạn nên có là một JSONArray chứa JSONObjects

points:[{1:9.32},{2:5.22}]

Sau đó, bạn có thể giải nén JSONObjects từ JSONArray và chỉ cần truy cập trực tiếp vào các giá trị số

JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");

bạn có thể dễ dàng chuyển đổi nó thành một vòng lặp để chạy trên toàn bộ JSONArray của các giá trị

Cập nhật - Sự cố PHP

Chuỗi của bạn không trở lại đúng JSON vì bạn đang kết xuất toàn bộ kết quả nếu truy vấn của bạn vào một mảng duy nhất. Hãy thử một cái gì đó như sau:

$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);

Tôi muốn kiểm tra điều đó trước nhưng ý tưởng là bạn cần tạo JSONArray và sau đó thêm vào đó các mảng bên trong nhỏ hơn sẽ trở thành JSONObject . Khi bạn json_encode, bạn sẽ có một mảng [] với các đối tượng {double:some_number}. Để giải nén, tất cả những gì bạn phải làm là lặp qua JSONArray và nhận mọi nhân đôi được liên kết với nhân đôi giá trị khóa. Nó sẽ hoạt động như thế này:

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
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Thực hiện KHÔNG TỒN TẠI. Có thể cải thiện hiệu suất không?

  2. Làm thế nào để sắp xếp lại các cột MySQL?

  3. MySQL 5 bên trái tham gia cột không xác định

  4. MySQL:Tính số ngày đăng ký còn lại dựa trên các khoản thanh toán

  5. Khôi phục cơ sở dữ liệu mysql từ các tệp .frm