javascript - 将文本区域输入字符串转换为类型对象

标签 javascript jquery css html storage

我有一个读取文本区域输入的函数。

文本区域的输入以字符串形式返回,但我希望它是一个对象。

如何把它变成一个对象?我使用了 json.parse 和 eval。我收到错误: VM16897:1 Uncaught SyntaxError: JSON 中位置 0 的意外标记 v 在 JSON.parse()

我想要的格式:

var a = {
                     "ss": [{
                        "name": "O",
                            "id": "shh1",
                            "url": "hthh.sss"
                         }]
                    }],
                    "Maacks": [{
                    "name": "Default",
                          }
                     }]
                }

当我得到 textarea 输入时我得到了什么:

    "var a = {
                     "ss": [{
                        "name": "O",
                            "id": "shh1",
                            "url": "hthh.sss"
                         }]
                    }],
                    "Maacks": [{
                    "name": "Default",
                          }
                     }]
                }"

最佳答案

您应该像下面这样输入,不带 var a =。此外,您还必须纠正左括号和右括号。

{
                     "ss": [{
                        "name": "O",
                            "id": "shh1",
                            "url": "hthh.sss"
                         }
                    ],
                    "Maacks": [{
                    "name": "Default"
                          }
                     ]
                }

然后使用 JSON.parse 解析,如下所示,

var a = JSON.parse(textArea.value);

工作样本

// Copy the below content inside the commented line (/* ... */) into the text area and click the 'Convert' button,

/*

{
  "ss": [{
                        "name": "O",
                            "id": "shh1",
                            "url": "hthh.sss"
                         }
                    ],
                    "Maacks": [{
                    "name": "Default"
                          }
                     ]
}

*/



function convert() { 
  var jsonText = document.getElementById('textArea').value;
  if(jsonText) {
    try {
      var json = JSON.parse(jsonText);
      console.log(json);
    } catch(e) {
      console.log(e);     
    }
  }
}
<textarea id="textArea" rows="10" cols="50"></textarea>
<br/>
<input type="button" value="Convert" onclick="convert()"/>

关于javascript - 将文本区域输入字符串转换为类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40600577/

相关文章:

javascript - 如何将 JS 变量传递给 DataLayer?

javascript - 如何浏览包含多个 html 源的网页?

javascript - 无法通过 Flask-socketIO 服务器在 HTML 客户端中显示来自 Python 客户端的视频流

javascript - 使用 JavaScript 模块模式时私有(private)方法应该放在哪里?

c# - 将 div 及其中的内容转换为图像

javascript - 如何防止队列建立 jQuery

javascript - jQuery 强制刷新输入数据

javascript - 在底部 'reaches' 之前滚动 HTML 页面

php - CSS @import 不适用于 PHP

javascript - 如何将按钮置于按下状态?