【问题标题】:Getting JSON data from text area从文本区域获取 JSON 数据
【发布时间】:2015-04-03 01:05:06
【问题描述】:

在小提琴中 - http://jsfiddle.net/660m7g7k/

<textarea id="input">
[
{
  name: "Tyorry",
  age: 22
}, {
  name: "greg",
 age: 44
}, {
  name: "aff",
  age: 99
}, {
  name: "ben",
  age: 20
}
]

var x=document.getElementById("input").value;
alert(x[0]);

基本上有JSON数据,对象数组。我有 2 个问题。

1) 这个 JSON 数据是 JSON.stringify 格式还是 JSON.parse 格式?因为 JSON.parse 出错并且 JSON.stringify 工作正常。

2) 我正在从 textarea 获取 JSON 数据。但 x[0] 或 x[3] 返回空白。基本上我想遍历数组项(它们是对象)并获取值、名称和年龄。

【问题讨论】:

    标签: javascript json textarea


    【解决方案1】:

    文本区域中的值始终是string。因此,如果您希望它作为一个对象,您将需要使用JSON.parse() 来获取它。如果JSON.Parse() 失败,那么您的 JSON 格式无效。

    要检查您的 JSON 是否有效,请尝试使用 http://jsonlint.com/ 之类的内容。小提琴中提供的 JSON 无效。

    【讨论】:

    • 是的,it does work 使用有效的 JSON,属性名称需要用引号括起来。
    【解决方案2】:

    在普通 JS 中使用这个

    var x=document.getElementById("input").value;
    var y = eval(x);
    alert('hi '+y[0].name+ ' are you '+ y[0].age+' years old');
    

    Plunker

    【讨论】:

    • 关键是将String转换为Javascript对象。 Eval 是执行此操作的一种方法,但是有一些库可以帮助您。最好的办法是弄清楚你将使用什么 JS 框架——你很可能会在那个工具箱中找到一些东西。例如AngularJS、jQuery
    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 2014-12-12
    • 2011-09-26
    • 2013-02-03
    • 1970-01-01
    • 2017-02-13
    • 2021-08-02
    相关资源
    最近更新 更多