您的位置:首页 > Web前端 > JQuery

Play前后台使用JsonArray交互,以及使用JQuery遍历array数组和JsonArray

2016-01-20 14:21 726 查看
1.Play后台封装和生成JsonArray(AJAX方式)

需导入

import com.fasterxml.jackson.databind.node.ArrayNode;

import com.fasterxml.jackson.databind.node.ObjectNode;

import com.fasterxml.jackson.databind.JsonNode;import play.libs.Json;

public static Result testJsonArray(){

JsonNode in = request().body().asJson();//接收到的推送信息
Logger.info("收到的推送信息" + in.toString());

String group = in.get("group").textValue();

ObjectNode on = Json.newObject();
ArrayNode arr = Json.newObject().arrayNode();
for(LmProduct pro : proList){
ObjectNode proNode = Json.newObject();
proNode.put("name", pro.getProductName());
proNode.put("price", pro.getLowestBuyPrice());
arr.add(proNode);
}

Logger.info("最终的array为:" + arr);
on.put("list", arr);

return ok(on);
}

2.页面发送AJAX请求,并处理返回的JsonArray        function askForMessage(obj){    
            var formdata = {  
                    "group" : group,  
                    "proName" : proName
                };
            $.ajax({
                type: "POST",
                url: "url",
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(formdata),
                success: function(data){
                        $.each(data.list, function(index, json) {
                           //data.list为上面的 ArrayNode  arr     ,index为当前遍历元素的下标          
                           alert("#" + json.name + ", period: " + json.price );

                        });               
                }
            });
    
    
        }
3.JQuery处理数组的一些问题

jquery each循环,实现break和continue的功能:

break,结束循环----return false;

continue,开始下一次循环--return ture;

 $.each(data.list, function(index, json) {
                           //data.list为上面的 ArrayNode  arr     ,index为当前遍历元素的下标          
                           alert("#" + json.name + ", period: " + json.price );
return false;
                        });       

循环中使用当前对象,this

var proIdArray = document.getElementsByName('activeproid');//这是一个节点数组

$.each(proIdArray,function(n,inputNode) {
//this.value:获取当前节点对象的value属性
<pre name="code" class="javascript"> //this.name:获取当前节点对象的name属性

                if("null"==this.value){

                    alert("诸神归位");

                    this.value = "";

                    this.value = proID;

                    return false

                }

             });



4.遍历对象

$.each(Object, function(name, value) {

this; //this表示当前对象

name; //name表示当前属性的名称

value; //value表示当前属性的值

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息