Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有变量和值的字符串到对象/数组_Javascript_Json - Fatal编程技术网

Javascript 带有变量和值的字符串到对象/数组

Javascript 带有变量和值的字符串到对象/数组,javascript,json,Javascript,Json,在遍历JSON数据时,我将一些变量作为带有属性名和值的平面字符串 第1行 第2排 第3排 我希望拆分并返回一个对象,如下所示(基本上是JSON格式) 我试过了 for(var i=0; i<entries.length; i++) { console.log(JSON.parse(entries[i].content.$t)); } for(var i=0;i您的json字符串缺少引号并且不是有效的json。image2.jpg不是“image2.jpg” 您需要JSON.par

在遍历JSON数据时,我将一些变量作为带有属性名和值的平面字符串

第1行

第2排

第3排

我希望拆分并返回一个对象,如下所示(基本上是JSON格式)

我试过了

for(var i=0; i<entries.length; i++) {
    console.log(JSON.parse(entries[i].content.$t));
}

for(var i=0;i您的json字符串缺少引号并且不是有效的json。image2.jpg不是“image2.jpg”

您需要
JSON.parse(“{”propertyurl:“link3”,“imageurl:“image2.jpg”}”);

如果字符串格式是可预测的,则在逗号和冒号上拆分行:

var s = "propertyurl: link3, imageurl: image2.jpg"; // One of the rows you've shown in the OP
var obj = {};
s.split(",").forEach(function (property) {
    var kv = property.split(": ");      
    obj[kv[0].trim()] = kv[1].trim();
});
基本上,您所做的是在字符串上循环,并在值出现时分配给
obj
,然后您可以使用这些值

编辑:
在冒号后面添加空格

@juvian I简化并在开发者工具JSON.parse中测试(“{“+”a:1,b:2“+”}”);但它抛出了一个错误,SyntaxError:Unexpected token aHe正在描述一个需要转换为对象键/值对的字符串。他并不是说JSON数据中的每个字符串都是有效的JSON。Ceres,老实说,这就是来自Google Docs电子表格的原因,简单地说,一个变量的所有列都是上面提到的平面字符串,我不能edi不管怎样,我们都可以用字符串的方式来处理,@Whymarrh的想法是正确的。有点问题,我的链接有http://,所以property.split(“:”)也在拆分链接。图像链接也是如此
"propertyurl: http://link3, imageurl: http://image3.jpg"
{ propertyurl: "link1", imageurl: "image2.jpg" }
for(var i=0; i<entries.length; i++) {
    console.log(JSON.parse(entries[i].content.$t));
}
var s = "propertyurl: link3, imageurl: image2.jpg"; // One of the rows you've shown in the OP
var obj = {};
s.split(",").forEach(function (property) {
    var kv = property.split(": ");      
    obj[kv[0].trim()] = kv[1].trim();
});