1

我有一个带有逗号分隔字符串值的 JavaScript 变量 - 即value1,value2,value3, ......,valueX,

我需要将此变量的值转换为 JSON 对象。然后我将使用这个对象来匹配用户输入的文本值filterObj.hasOwnProperty(search)

请帮我解决这个问题。

4

4 回答 4

3

您似乎想要的是从您的字符串构建一个充当映射的 JavaScript 对象,以便您可以有效地测试其中的值。

你可以这样做:

var str = 'value1,value2,value3,valueX';
var map = {};
var tokens = str.split(',');
for (var i=tokens.length; i--;) map[tokens[i]]=true;

然后您可以测试是否存在这样的值:

if (map[someWord]) {
    // yes it's present
}
于 2013-03-27T08:24:46.640 回答
2

为什么是 JSON?您可以将其转换为数组split(",")

var csv = 'value1,value2,value3';
var array = csv.split(",");
console.log(array); // ["value1", "value2", "value3"]

访问它array[i]应该可以完成这项工作。

for (var i = 0; i < array.length; i++) {
    // do anything you want with array[i]
}

JSON 用于数据交换。除非您想与其他语言交流或传递一些数据,否则在单个页面上使用 JavaScript 处理时不需要 JSON。

于 2013-03-27T08:14:53.573 回答
0

JavaScript has JSON.stringify() method to convert an object into JSON string and similarly JSON.parse() to convert it back. Read more about it

All about JSON : Why & How

Cheers!!

于 2016-07-04T18:16:39.470 回答
-1

JSON 格式需要(单维或多维)键、值对列表。您不能只将逗号分隔的列表转换为 JSON 格式。您需要分配密钥。

例子,

[
  {"key":"value1"},
  {"key":"value2"},
  {"key":"value3"},
  ...
  {"key":"valueX"}
]

我认为根据您的要求,您可以使用 Array.

于 2013-03-27T09:19:13.073 回答