2011-10-12 36 views

Trả lời

24

hoặc có thể sử dụng var data = JSON.parse(yourString); hoặc var data = eval('(' + yourString+ ')');

1

Sử dụng JSON.parse

var obj = JSON.parse(str); 
+2

không hợp lệ JSON, chuỗi đó sẽ không phân tích – Joe

+1

JSON là một đối tượng nhưng đối tượng không phải là JSON..therefore nhất thiết theo cách này không phải là con đường dành để đi. – vsync

9

Đây là một trong những thời điểm eval thực sự đến trong hữu ích:

var x = eval(yourString); 

Nhưng nó chắc chắn là an toàn hơn để sử dụng JSON.parse theo đề nghị của câu trả lời khác.

Đây là số working example của phiên bản eval.

+2

Eww, eval ...; - \ –

+4

Để đánh giá đúng chuỗi như thế này, bạn thực sự cần phải quấn chuỗi đó trong dấu ngoặc đơn, ví dụ: 'var x = eval ('(' + yourString + ')')', nếu không bạn sẽ nhận được 'SyntaxError'. –

+0

@BradChristie - Yup, tôi đồng ý! Nhưng nếu jQuery không thể được sử dụng, và bạn cần phải hỗ trợ các trình duyệt cũ hơn ... –

0

Chỉ cần đặt biến cho chính xác chuỗi đó.

var new_object = [{text: 'First Option', value: 'first'},{text: 'Second Option', value: 'second'},{text: 'Third Option', value: 'third'}] 
+2

Điều gì đó cho tôi biết đó không phải là vấn đề "làm cách nào để sao chép/dán điều này trong javascript và nhận được một đối tượng" (mặc dù tôi có thể sai). –

0

Nếu bạn jave jQuery, bạn có thể sử dụng jQuery.parseJSON. Nếu bạn không, bạn có thể kéo chức năng từ source code và đặt nó trên trang của bạn và có cùng ưu điểm.

+0

Điều đó giống với 'JSON.parse()' ... – vsync

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