js怎样生成json的数据?

JavaScript047

js怎样生成json的数据?,第1张

1、按照描述,题主是想将多条数据记录提交到服务端,同时服务端将数据插入到数据库。那么思路是将多条数据存在数组中,调用post方法的接口传入后端。

2、方法如下:

var sendData = []

sendData.push({name:'david',age:'20'})

sendData.push({name:'peter',age:'23'})

3、传递数据给服务端,一般使用post方法调用接口,使用jquery,代码如下:

$.post("接口路径",sendData,function(result){

console.log(result,'发送结果')

})

扩展资料:

1、json与字符串互相转换:

JSON.parse('{"name":"karla"}')//将字符串转换为json

JSON.stringify({name:'karla'})//将json转化为字符串

2、jquery中post与get的区别:

1) $.get() 方法使用GET方法来进行异步请求的。$.post() 方法使用POST方法来 进行异步请求的。

2)get请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体     内容发送给Web服务器的,这种传递是对用户不可见的。

3) get方式传输的数据大小不能超过2KB 而POST要大的多。

4)GET 方式请求的数据会被浏览器缓存起来,因此有安全问题。

参考资料:百度百科-json

感觉还是有点复杂,可用。可加双引号。

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8" />

<script src="jquery-2.0.2.min.js"></script>

<title>无标题文档</title>

<script language="javascript" type="text/javascript">

    window.onload = function(){

        //tabToJSON("tab")

        tabToJSONForJquery("tab")

    }

    function tabToJSON(id) {

        var trs = document.getElementById(id).getElementsByTagName("tr")//获得tr数组

        var titles = trs[0].getElementsByTagName("td")    //获得表头td数组

        var json = ""

        for(var i = 1 i < trs.length i++) {

            var tds = trs[i].getElementsByTagName("td")    

            json += "{" 

            //拼装json

            for(var j = 0 j < tds.length j++) 

                json += titles[j].innerHTML + ":" + tds[j].innerHTML + ","

            json = json.substring(0, json.length - 1) + "},"

        }

        json = "[" + json.substring(0, json.length - 1) + "]"

        document.getElementById("test").innerHTML = json

    }

    function tabToJSONForJquery(id) {

        var titles = $("#" + id).find("tr:first td")    //获得表头td数组

        //遍历非表头的,tr、td...拼装json

        var json = "[" + $("#" + id).find("tr:not(:first)").map(function(i, e) {

            return "{" + $(e).children("td").map(function(j, el) {

                return $(titles[j]).html() + ":" + $(el).html()

            }).get().join(",") + "}"

        }).get().join(",") + "]" 

        $("#test").html(json)

    }

</script>

</head>

<body>

<table id="tab">

    <tr>

        <td>test1</td>

        <td>test2</td>

        <td>test3</td>

    </tr>

    <tr>

        <td>val1</td>

        <td>val2</td>

        <td>val3</td>

    </tr> 

    <tr>

        <td>val11</td>

        <td>val22</td>

        <td>val33</td>

    </tr>   

</table>

<div id="test"></div>

</body>

</html>

重新放下JS,好难看

function tabToJSON(id) {

        var trs = document.getElementById(id).getElementsByTagName("tr")//获得tr数组

        var titles = trs[0].getElementsByTagName("td")    //获得表头td数组

        var json = ""

        for(var i = 1 i < trs.length i++) {

            var tds = trs[i].getElementsByTagName("td")    

            json += "{" 

            //拼装json

            for(var j = 0 j < tds.length j++) 

                json += titles[j].innerHTML + ":" + tds[j].innerHTML + ","

            json = json.substring(0, json.length - 1) + "},"

        }

        json = "[" + json.substring(0, json.length - 1) + "]"

        document.getElementById("test").innerHTML = json

    }

    function tabToJSONForJquery(id) {

        var titles = $("#" + id).find("tr:first td")    //获得表头td数组

        //遍历非表头的,tr、td...拼装json

        var json = "[" + $("#" + id).find("tr:not(:first)").map(function(i, e) {

            return "{" + $(e).children("td").map(function(j, el) {

                return $(titles[j]).html() + ":" + $(el).html()

            }).get().join(",") + "}"

        }).get().join(",") + "]"

        $("#test").html(json)

    }

Obj2str: function(o) {

if (o == undefined) {

return ""

}

var r = []

if (typeof o == "string") return "\"" + o.replace(/([\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\""

if (typeof o == "object") {

if (!o.sort) {

for (var i in o)

r.push("\"" + i + "\":" + fn.Obj2str(o[i]))

if (!!document.all &&!/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {

r.push("toString:" + o.toString.toString())

}

r = "{" + r.join() + "}"

} else {

for (var i = 0i <o.lengthi++)

r.push(fn.Obj2str(o[i]))

r = "[" + r.join() + "]"

}

return r

}

return o.toString().replace(/\"\:/g, '":""')

}