cforeach循环json(cforeach嵌套循环)

发布时间:2023-12-08

cforeach循环json(cforeach嵌套循环)

更新:2022-11-15 01:13

本文目录一览:

  1. [jstl foreach 怎么遍历json 数组](#jstl foreach 怎么遍历json 数组)
  2. php循环读取json
  3. forEach循环遍历请求接口
  4. [问大佬php中如何用 foreach解析json](#问大佬php中如何用 foreach解析json)
  5. [C# json 数据循环](#C# json 数据循环)
  6. [java foreach是否能对jsonarray进行遍历](#java foreach是否能对jsonarray进行遍历)

jstl foreach 怎么遍历json 数组

<c:forEach items="${jsonArray }" var="bean">
    ${bean.XXX }
</c:forEach>
<%
    //简单的map对象
    Map map = new HashMap();
    map.put("aa", "你好");
    map.put("bb","中国");
    request.setAttribute("person1", map); 
    //把map放入request域对象,真正的时候是有另一个控制器传送过来的,在这里我直接放在同一个页面,下面也一样
    //map中放入User对象
    User u1 = new User();
    u1.setName("hello");
    u1.setAge(18);
    User u2 = new User();
    u2.setName("world");
    u2.setAge(21);
    map.put("aa", u1);
    map.put("bb",u2);
    request.setAttribute("person", map);
    //set
    Set set = new HashSet();
    set.add(u1);
    set.add(u2);
    request.setAttribute("person2", set);
%>
<!-- 遍历简单的map对象 -->
<c:forEach items="${person1 }" var="per1">
    key=${per1.key },value=${per1.value }
</c:forEach><br>
<!-- 遍历Map中的User对象 -->
<h2>map的迭代</h2>
<c:forEach items="${person}" var="user">
    key=${user.key },name=${user.value.name },age=${ user.value.age}
</c:forEach><br>
<h2>Set集合的遍历</h2>
<c:forEach items="${person2 }" var="per">
    name=${per.name },age=${per.age }
</c:forEach>&nbsp;

上述的User中有两个属性,分别是name和age,以及相对应的set和get的方法。

php循环读取json

<?php
$str = '[{"name":"北京","city":[{"name":"北京","area":["东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","平谷区","怀柔区","密云县","延庆县"]}]},{"name":"天津","city":[{"name":"天津","area":["和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区","东丽区","西青区","津南区","北辰区","武清区","宝坻区","宁河县","静海县","蓟 县"]}]}]';
$provinces = json_decode($str, true);
foreach($provinces as $province){
    echo $province['name'], '<br/>';
    foreach($province['city'] as $city){
        echo '--', $city['name'], '<br/>';
        foreach($city['area'] as $area){
            echo '----', $area, '<br/>';
        }
    }
}
exit;
?>

forEach循环遍历请求接口

最近项目的需求,需要遍历table表格里的数据,进行生产的操作, 效果: 接口返回的格式 潇洒的实现效果 但是有一点需要注意:如果用for循环,就会出现,接口全都请求成功以后,也不能成功赋值的错误! 例如for循环的写法如下:

postAutoProduceDevice() {
    var _this = this;
    if (_this.zdExList.length < 1) {
        return _this.$message.warning("请先导入要生产的设备");
    }
    var snArr = [];
    var snArrTotal = 0;
    var arrList = _this.zdExList;
    for (let index = 0; index < arrList.length; index++) {
        const element = arrList[index];
        _this.hqUserInfo({
            data: {
                name: "postAutoProduceDevice",
                data: JSON.stringify({
                    batch: _this.produceDevSearch.batch,
                    devicetype: _this.zd.devtype,
                    sn: element.sn,
                    field: "",
                    snnum: "1",
                    operid: _this.userid
                })
            }
        }).then(res => {
            if (res.ret) {
                _this.zdExList[index] = {
                    "sn": res.Data[0].sn,
                    "deviceType": res.Data[0].devicetype,
                    "logicId": res.Data[0].logicid,
                    "mac": res.Data[0].mac,
                    "ip": res.Data[0].ip,
                    "retmsg": "生产成功"
                }
            } else {
                _this.zdExList[index].retmsg = res.Msg;
            }
        });
    }
}

forEach写法:

postAutoProduceDevice() {
    var _this = this;
    if (_this.zdExList.length < 1) {
        return _this.$message.warning("请先导入要生产的设备");
    }
    var zdParams = {
        batch: _this.produceDevSearch.batch,
        devicetype: _this.zd.devtype,
        sn: "",
        field: "",
        snnum: "1",
        operid: _this.userid
    };
    _this.zdExList.forEach((item, index) => {
        zdParams.sn = item.sn;
        _this.hqUserInfo({
            data: {
                name: "postAutoProduceDevice",
                data: JSON.stringify(zdParams)
            }
        }).then(res => {
            if (res.ret) {
                item.sn = res.Data[0].sn;
                item.devicetype = res.Data[0].devicetype;
                item.logicId = res.Data[0].logicid;
                item.mac = res.Data[0].mac;
                item.ip = res.Data[0].ip;
                item.retmsg = "生产成功";
                _this.$set(_this.zdExList, index, _this.zdExList[index]);
            } else {
                item.retmsg = res.Msg;
                _this.$set(_this.zdExList, index, _this.zdExList[index]);
            }
        });
    });
}

问大佬php中如何用 foreach解析json

首先,不推荐使用foreach进行自己去解析json字符串,因为php已经封装了非常好用,且效率不低的内置方法,这个方法就是json_decode。 使用这个函数,可以直接把json数据转换成数组或者对象,这个是可以控制的。转换成对象或者数组之后,再使用foreach就可以方便遍历得到想要的数据。

C# json 数据循环

(请楼主耐心看完,因为是专门为你的问题写的)

  1. 首先需要写三个类,这个类和json中对象的数据结构应该是对应的,这里的例子可能忽略了部分属性和数据类型,仅供参考:
//Json数据的对象结构
public class MyJson
{
    public List<MyTreeNodeBean> beanList { get; set; }
}
//树形结构中的对象结构
public class MyBean
{
    public string id { get; set; }
    public string title { get; set; }
    public string note { get; set; }
    public MyImage image { get; set; }
    public string maxid { get; set; }
    public string fold { get; set; }
    public string putright { get; set; }
    public List<MyTreeNodeBean> children { get; set; }
    public MyBean()
    {
    }
}
//对象里面Image的结构
public class MyImage
{
    public string url { get; set; }
    public string border { get; set; }
    public string height { get; set; }
    public string width { get; set; }
}
  1. 因为json是树形结构的数据,所以需要递归遍历去寻找对应ID的对象
//这个类负责按照ID寻找对象
public class MyHelper
{
    //FindById函数的重载函数,用来第一次调用
    public static MyBean FindById(string id, string jsonString)
    {
        return FindById(id, jsonString, null);
    }
    //FindById递归寻找函数
    public static MyBean FindById(string id, string jsonString, List<MyBean> beanList)
    {
        if (beanList == null)
        {
            //第一次调用的时候,寻找的列表是最高层的根底下的对象列表
            //将json数据转换成C#对应类型(用了Newtonsoft.Json)
            MyJson json = JavaScriptConvert.DeserializeObject<MyJson>(jsonString);
            beanList = json.beanList;
        }
        //遍历对象列表,寻找对应ID的对象
        MyBean returnBean = null;
        foreach (MyBean bean in beanList)
        {
            if (bean.id == id)
            {
                //找到了
                returnBean = bean;
            }
            else
            {
                //递归寻找:
                //如果不是,就寻找此对象的children列表
                returnBean = FindById(id, jsonString, bean.children);
            }
            //如果找到,就跳出寻找
            if (returnBean != null)
            {
                break;
            }
        }
        return returnBean;
    }
}
  1. 使用实例:
//假设json的字符串在变量jsonString中
MyBean bean = MyHelper.FindById("33", jsonString);
if (bean != null)
{
    //使用查找出来的bean
}

写在最后: 以上代码仅供参考,没有经过编译测试、有可能存在书写错误。但是逻辑清晰、没有任何冗余内容。请楼主阅读以后自己在理解的基础上进行修改、改进再使用。 另外楼主如果想给分就请直接给,请不要马马虎虎把大家的回答投票,比较反感,最后祝你早日搞定这个问题~~~

java foreach是否能对jsonarray进行遍历

//定义一个String类型的一维数组
String[] names = new String[5];
//为数组赋值
for (int i = 0; i < names.length; i++) {
    names[i] = Integer.toString(i);
}
//使用foreach遍历数组
int index = 0;
for (String name : names) {
    System.out.println("第" + index + "元素是:" + name);
    index++;
}
//使用for遍历数组
for (int i = 0; i < names.length; i++) {
    System.out.println("第" + i + "元素是:" + names[i]);
}