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

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表示当前属性的值

});




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值