在javascript中将字符串数组转换为数组
我从django rest framework api调用中获得以下项:在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
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”
)
)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)