在javascript中将字符串数组转换为数组

在javascript中将字符串数组转换为数组,javascript,arrays,json,django,Javascript,Arrays,Json,Django,我从django rest framework api调用中获得以下项: services = "['service1', 'service2', 'service3']" 我想要services=['service1','service2','service3'] 在我的JavaScript中,我尝试了services=JSON.parse(services) -没有做任何事情,也尝试了$.parseJSON(服务) 在我的序列化程序中,我尝试了将服务设置为ListField,也尝试了JSO

我从django rest framework api调用中获得以下项:

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

在我的JavaScript中,我尝试了
services=JSON.parse(services)
-没有做任何事情,也尝试了
$.parseJSON(服务)

在我的序列化程序中,我尝试了将服务设置为
ListField
,也尝试了
JSONSerializerField()


要解析它,需要使用双引号而不是单引号

这应该起作用:

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

为了确保Django和一些javascript浏览器代码之间的正确解析,请确保在控制器中返回JsonResponse()。这确保您可以在Javascript中使用JSON.parse()解析它。

我最近发现了一种解决类似问题的迂回方法。我想将数组作为数据属性存储在HTML元素中,以便稍后在JS中使用它。但是,这样的HTML属性只能存储为字符串。要解决这个问题

  • 首先,我将数组转换为单个字符串,每个值用逗号分隔(例如,
    [“测试1”、“测试2”、“测试3”]
    写为
    “测试1、测试2、测试3”
  • 接下来,我将新字符串输入到所需的HTML数据属性中。(例如
  • 进入JS后,我检索了该数据字符串,并使用jQuery的“split”方法将其转换回数组
  • let stillString=$(“[data-something]”)。attr('data-something');
    log(stillString);
    让nowArray=stillString.split(“,”);
    console.log(nowArray);

    尝试使用:

    var services=“['service1','service2','service3']”
    服务=服务。拆分(“,”);
    服务[0]=服务[0]。子字符串(1);
    服务[services.length-1]=服务[services.length-1]。子字符串(
    0,
    服务[services.length-1]。长度-1
    );
    服务费((x,i)=>{
    服务[i]=服务[i]。包括(“”)?服务[i]。替换所有(“”,“).trim()
    :services[i].replaceAll(“,”).trim();
    });
    
    console.log(services);
    在JSON中没有赋值,只有
    =
    右边的数据,看起来JSON应该在项目上有
    而不是
    ,而不是全部引用。您的帖子中的
    services
    是您收到的项目的一个变量还是部分?这是我从我的电话中收到的。我将它存储为模型中的services=JSONField(blank=True,default=list)。我将尝试引用技巧,认为这可能是解析问题。不要尝试使用自己的代码创建JSON。使用
    json.dumps()
    。它也适用于我。这背后有什么直觉吗?为什么带“”的不起作用?请注意JSON.parse()@FatemehRahimi后面的尾随`带
    '
    的不起作用,因为JSON只识别字符串
    '
    services = '["service1", "service2", "service3"]'
    JSON.parse(services)