【问题标题】:How to convert String "[7, 9]" to Array in Javascript如何在Javascript中将字符串“[7, 9]”转换为数组
【发布时间】:2018-05-10 07:28:17
【问题描述】:

我得到了这个字符串。 (我从后端得到逗号分隔的字符串)

"seasons": "[7, 9]"

我想像这样迭代 Array 的数组。

// example
this.props.data.seasons.map((element) => console.log(element));

我们如何将“[7, 9]”转换为数组[7, 9]?

你们平时处理数组字符串吗?

【问题讨论】:

  • 您对后端有任何控制权吗?因为我会将其归类为错误...
  • 是的,我正在制作自己的后端!而且我认为这是在 Django 中处理数组的最简单易行的方法:)
  • 是的,我认为将数据作为字符串传递是可以的,您可以使用JSON.stringifyJSON.parse 来回转换
  • 如果您正在制作自己的后端 - 那么您应该修复您的后端以返回一个 json 数组而不是包含一个的字符串。姜戈吧?然后在整个数据结构上使用json.dumps()

标签: javascript django reactjs react-native django-rest-framework


【解决方案1】:

使用@987654321@转换JavaScript对象。

const tempDict = {"seasons": "[7, 9]"}
JSON.parse(tempDict.seasons)

【讨论】:

  • 酷! JSON.parse(tempDict) 的返回值是多少?
  • 它将是一个 JS 对象
  • @JohnBaek 请确保 tempDict 实际上是一个字符串( JSON.stringify(..,然后再提供给JSON.parse(..,但您将再次以 JSON 对象结尾,例如{season: "[7, 9]"}
  • @RajaSimon 你能编辑你的问题吗?当它尝试将“”转换为数组时,我也遇到了错误。我该如何处理这种极端情况?
  • 也为我的问题投票!
【解决方案2】:

你可以做一些如下的修饰工作:

<script>
        $(function(){
             var mystr = "[7, 9]";
             mystr = mystr.replace("[", "").replace("]", "");
             var myArray = mystr.split(",");

             for (i = 0; i < myArray.length; i++) {
                console.log(jQuery.trim(myArray[i]));
            }
        });
   </script>

【讨论】:

  • 是的!硬编码也可以,但使用 JSON.parse 似乎是更好的选择。投票赞成
【解决方案3】:

使用JSON.parse(element):

let newArray = JSON.parse(this.props.data.seasons);
console.log(newArray[0]);  //printing 7, ryt ?

JSON.parse()

【讨论】:

  • 完美,但我无法迭代 this.props.data.seasons。几乎工作,投票赞成你的答案
  • 正如其他人所说,如果将整个对象转换为JSON字符串会容易得多,这样您就可以使用单个JSON.parse来解析整个对象。
猜你喜欢
  • 2015-11-11
  • 2017-10-15
  • 1970-01-01
  • 2022-11-29
  • 2015-10-26
  • 1970-01-01
  • 2011-09-22
  • 2022-01-23
相关资源
最近更新 更多