首页 > Web开发 > 详细

取得页面上存储的json格式数据

时间:2019-12-25 19:35:21      阅读:90      评论:0      收藏:0      [点我收藏+]

 

    <div class="ch">
        <input type="text" class="in" value="{"a":"1,2,3"}">
        <input type="text" class="in" value="{"b":"2,3,4"}">
        <input type="button" class="btn" value="转换">
    </div>

现在想把input框内的对象数据取出来,怎么办呢?

我们可以先取出来字符串,再通过JSON.parse方法来处理:

$(‘.btn‘).on(‘click‘, function(){
        var args = {};
        $(‘.ch‘).find(‘.in‘).each(function(index, ele){
            var _args = $(ele).val()
            _args = JSON.parse(_args)
            for(var key in _args){
                var value = args[key] ? args[key] + ‘,‘ : ‘‘
                args[key] = value + _args[key]
            }
        });
        console.log(args)
    })

我们可以得到想要的结果:

{a: "1,2,3", b: "2,3,4"}

 那么如果input框内不是标准的json格式呢?比如这样:

    <div class="ch">
        <input type="text" class="in" value="{‘a‘:‘1,2,3‘}">
        <input type="text" class="in" value="{‘b‘:‘2,3,4‘}">
        <input type="button" class="btn" value="转换">
    </div>

再使用JSON的parse是会报错的。

VM729:1 Uncaught SyntaxError: Unexpected token ‘ in JSON at position 1
at JSON.parse (<anonymous>)
at HTMLInputElement.<anonymous> (foreach.html:40)
at Function.each (jquery-1.11.0.js:384)
at jQuery.fn.init.each (jquery-1.11.0.js:137)
at HTMLInputElement.<anonymous> (foreach.html:37)
at HTMLInputElement.dispatch (jquery-1.11.0.js:4624)
at HTMLInputElement.elemData.handle (jquery-1.11.0.js:4292)

 怎么办呢?

$(‘.btn‘).on(‘click‘, function(){
        var args = {};
        $(‘.ch‘).find(‘.in‘).each(function(index, ele){
            var _args = new Function(‘return ‘ + $(this).val())()

            for(var key in _args){
                var value = args[key] ? args[key] + ‘,‘ : ‘‘
                args[key] = value + _args[key]
            }
        });
        console.log(args)
    })

结果同上面是一样的。

取得页面上存储的json格式数据

原文:https://www.cnblogs.com/mantishell/p/12098331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!