【问题标题】:turn a text area input string to type object将文本区域输入字符串转为类型对象
【发布时间】:2016-11-15 01:25:13
【问题描述】:

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

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

如何把它变成一个对象?我使用了 json.parse 和 eval。我得到错误: VM16897:1 未捕获的 SyntaxError:位置 0 处 JSON 中的意外标记 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",
                          }
                     }]
                }"

【问题讨论】:

    标签: javascript jquery css html storage


    【解决方案1】:

    您应该在没有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()"/>

    【讨论】:

    • 这就是我要建议的,唯一的问题是它们没有平衡括号,但这不是你的错。
    • @Feathercrown 感谢您的指出,我在上面更正了相同的内容。
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2016-01-08
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多