2016-12-30 55 views
1

我得到以下物品從我的Django的休息框架API調用回:轉換字符串數組到陣列中的JavaScript

services = "['service1', 'service2', 'service3']" 

我想services = ['service1', 'service2', 'service3']

在我的JavaScript我試過services = JSON.parse(services) - 沒」不要做任何事情,也試過$.parseJSON(services)

在我的串行我曾嘗試設置服務ListField,也試過JSONSerializerField()

class JSONSerializerField(serializers.Field): 
    # Adapted from http://stackoverflow.com/a/28200902 
    def to_internal_value(self, data): 
     return json.loads(data) 

    def to_representation(self, value): 
     return value 
+0

JSON中沒有賦值,只是'='右邊的數據,它看起來像JSON應該有'''而不是'''在項目上,並且不能被全部引用。 – dandavis

+0

'services'在你的文章中發佈了一個變量或者你收到的一部分內容? –

+0

它是我從我的調用中收到的,我將它作爲services = JSONField(blank = True,default = list)存儲在我的模型中。引用技巧,認爲這可能是解析問題。 –

回答

0

您需要使用的,而不是單一的雙引號。

這應該工作:

services = '["service1", "service2", "service3"]' 
JSON.parse(services)` 
+0

是的,工作,謝謝:) –

1

爲了確保Django和一些JavaScript代碼的瀏覽器之間的正確解析,確保你在你的控制器返回JsonResponse()。這可以確保您可以在Javascript中使用JSON.parse()解析它。