2011-08-18 45 views
5

Làm cách nào để thoát khỏi các dấu ngoặc dưới đây để xử lý json?Xóa các dấu ngoặc đơn trong json?

[{"success":true,"filename":"bialding_and_rebialding_plymouth02.jpg"},{"success":true,"filename":"bialding_and_rebialding_plymouth03.jpg"},{"success":true,"filename":"bialding_and_rebialding_plymouth04.jpg"}] 

Kết quả trên được xử lý bởi các lớp dưới đây vào một mảng,

function handle_upload($upload_directory) 
    { 
     # Loop the code according to the number of files. 
     for($i = 1; $i <= $this->total; $i++) 
     { 
      ... 

      if ($this->file->save($upload_directory.$name_filtered.'.'.$file_extension , $i-1)) 
      { 
       $message[] = array('success'=>true,'filename'=>$name_filtered.'.'.$file_extension); 
      } 
      else 
      { 
       $message[] = array('error'=> 'Could not save uploaded file.' . 'The upload was cancelled, or server error encountered'); 
      } 
     } 

     return $message; 
    } 

Sau đó, tôi sử dụng json_encode để biến mảng sang định dạng json,

$uploader = new uploader(); 
$result = $uploader->handle_upload('uploads/'); 

echo htmlspecialchars(json_encode($result), ENT_NOQUOTES); 

Nhưng tôi chỉ cần điều này trong kết quả của tôi mà không có dấu ngoặc đơn,

{"success":true,"filename":"bialding_and_rebialding_plymouth02.jpg"},{"success":true,"filename":"bialding_and_rebialding_plymouth03.jpg"},{"success":true,"filename":"bialding_and_rebialding_plymouth04.jpg"} 
+2

Không có dấu ngoặc, chuỗi json của bạn sẽ không hợp lệ. một chuỗi JSON chỉ có thể chứa một giá trị duy nhất. Với các dấu ngoặc, đó là một mảng hoặc các đối tượng. Không có dấu ngoặc đơn, đó là một loạt các đối tượng được phân tách bằng dấu phẩy riêng lẻ - không hợp lệ. –

+1

không còn là json hợp lệ nữa. – hop

+0

Tại sao bạn không muốn '[]'? Bạn sẽ làm gì với chuỗi kết quả? –

Trả lời

16

str_replace(array('[', ']'), '', htmlspecialchars(json_encode($result), ENT_NOQUOTES));?

+0

cảm ơn. Tôi cũng từng nghĩ giống như vậy! – laukok

Các vấn đề liên quan