java的JSONArray怎么用?比如有一个JSONArray是 [{..."a":123, "

java的JSONArray怎么用?比如有一个JSONArray是 [{..."a":123, ",第1张

import javatextParseException;
import orgjsonJSONArray;
import orgjsonJSONObject;
public class TestJsonArray {
 public static void main(String[] args) throws ParseException {
  String jsonStr = "[{\"a\":123, \"b\":\"hello\", \"x\":[{\"inner\":\"Inner JSONObject\"}]}]";
  
  JSONArray jsonArray = new JSONArray(jsonStr);
  JSONObject jsonObj = jsonArraygetJSONObject(0);
  Systemoutprintln(jsonObj);
  
  int a = jsonObjgetInt("a");
  String b = jsonObjgetString("b");
  JSONArray jsonArrayX = jsonObjgetJSONArray("x");
  
  Systemoutprintln(a);
  Systemoutprintln(b);
  Systemoutprintln(jsonArrayX);
  Systemoutprintln(jsonArrayXgetJSONObject(0)getString("inner"));
 }
}

<%@ page language="java" import="javautil" pageEncoding="gbk"%>

<%@page import="orgjsonsimpleJSONObject"%>

<%@page import="orgjsonsimpleparserJSONParser"%>

<%@page import="orgjsonsimpleJSONValue"%>

<%@page import="orgjsonsimpleJSONArray"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">

<html>

<head>

<title>获取json内部数据html</title>

<meta >

<meta >

<meta >

<!--<link rel="stylesheet" type="text/css" href="/stylescss">-->

</head>

<body>

<table id="deptPersonList" title="部门信息列表" class="easyui-datagrid"

singleSelect="true" fit="true" pagination="true"

idField="deptPersonId" url="deptPersonInfo" width="800px"

rownumbers="false" striped="true">

<thead>

<tr>

<th field="deptPersonId" width="6" checkbox="true">

编号

</th>

<th field="sysPerson" width="60%" sortable="true">

人员名称

</th>

<th field="sysDepartment" width="30%" sortable="true">

部门名称

</th>

</tr>

</table>

</body>

<script type="text/javascript">

/

json格式如下

{"total":11,"rows":[{"deptPersonId":"1","sysDepartment":{"deptName":"人事"},"sysPerson":{"personName"}}]}

/

var json = {"total":11,

            "rows":[{"deptPersonId":"1",

         "sysDepartment":{"deptName":"人事"},

                     "sysPerson":{"personName":"张丽安"}

                    }

                   ]

           };

/

获取josn对象数据,是一层一层进行的。

/

/

js获取json元素中的子元素如deptName,personName

/

alert(jsonrows[0]sysDepartmentdeptName);

alert(jsonrows[0]sysPersonpersonName);

</script>

<%

//jsp获取json元素中的子元素如deptName,personName

//================

//使用 json_simplejar包 处理json字符

//然后获取json对象中的数据

//================

//声明JSON字符串

String json = "{\"tota\":11,"+

               "\"rows\":["+

                         "{\"deptPersonId\":\"1\","+

                        "\"sysDepartment\":{"+

                                           "\"deptName\":\"人事\"},"+

                                           "\"sysPerson\":{\"personName\":\"张丽安\"}"+

                                           "}"+

                       "]"+

              "}";

//===============================

// 最终的JSON字符如下:

//       {"total":11,

    //        "rows":[{"deptPersonId":"1",

//          "sysDepartment":{"deptName":"人事"},

    //                 "sysPerson":{"personName":"张丽安"}

    //                }

    //                ]

    //        }

//

// 注意查结构

//================================

//{"tota":11,"rows":[{"sysPerson":{"personName":"张丽安"},"sysDepartment":{"deptName":"人事"},"deptPersonId":"1"}]}

//将字符串转化为JSON对象

Object JSON = JSONValueparse(json);

//JSONObject继承自 HashMap

JSONObject JO = (JSONObject) JSON;

outprint(JSONtoString());

outprint("<br>");

//查看JSONObject对象元素长度

int length = JOsize();

outprint(length);

outprint("<br>");

outprint(JOtoString());

outprint("<br>");

//循环打印出元素数据

//for(int i = 0 ;i < length ; i++ ){

outprint("tota:<font color=red>" + JOget("tota") + "</font>");

outprint("<br>");

outprint("tota:<font color=red>" + JOget("rows") + "</font>");

outprint("<br>");

String rows = JOget("rows")toString();

//再次将rows对象转化为 JSONObject对象

JSONArray JO1 = (JSONArray) JSONValueparse(rows);

outprint(JO1size());

outprint("<br>");

JSONObject JO2 = (JSONObject)JO1get(0);

outprint("sysPerson:<font color=red>" + JO2get("sysPerson") + "</font>");

outprint("<br>");

outprint("sysDepartment:<font color=red>" + JO2get("sysDepartment") + "</font>");

outprint("<br>");

//再次获取

outprint("personName:<font color=red>" + ((JSONObject)JO2get("sysPerson"))get("personName") + "</font>");

outprint("<br>");

outprint("deptName:<font color=red>" + ((JSONObject)JO2get("sysDepartment"))get("deptName") + "</font>");

outprint("<br>");

//===================================

// 备注 信息

// JSONObject 可以转化为 {key:value}形式的 JSON对象,该对象继承自 HashMap ,所以可以使用HashMap的方法

// JSONArray  可以装维为 [object,object,……] 形式的数据对象,该对象继承自ArrayList,

// 灵活运用,可基本满足 需求。

//}

%>

</html>

你需要 下载 json_simple-11-allzip文件,网上搜索。

处理后如下:

如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$each(anObject,function(name,value) {
});
如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以
//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplitgetJSONArray("data");
for (int i = 0; i < jalength(); i++) {JSONObject jo = (JSONObject) jaget(i);Systemoutprintln(joget("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObjkeys(); iterhasNext();) {String key = (String)iternext();Systemoutprintln(jsonObj getString(Key));}

var json={"a":"aaa","b":{"c":"ccc","d":[{"e":"01","g":"kkkk"},{"e":"07","g":"lllll"},{"e":"05","g":"xxxxx"},{"e":"03","g":"kkkk"}]}};
var arr=[];
for(var i=0;i<jsonbdlength;i++){
    arr[i]=jsonbd[i]e+"-"+jsonbd[i]g;
}
consolelog(arr);

1、创建python文件,testjsonpy;

2、编写python代码,解析json数组,

json_str = {"name":"lisi",

"age":27}

for key, value in json_stritems():

print(str(key) + '=' + str(value))

3、右击,选择‘在终端中运行Python文件’;

4、查看运行结果,即可发现解析完成;

有两种方法,第一种的话,用迭代器
ArrayList arrli=new ArrayList();
for(Iterator is=arrliiterator();isnext())
{
Systemoutprintln(isnext());
}
第二种方法是采用struts标签中的<logic:iterator>进行遍历,这个相对简单些。
其中name属性代表后台传来的list结果集属性名。
<logic:iterate id="rn" name="rl">
<tr>
<th><input type="checkbox" id="e" name="e" value="${rnid}"></th>
<th><%= index %></th>
<th>${rnCId}</th>
<th><span style="cursor:hand" onclick="opensreach('linkmandoos=links&haha=${rnid}')">${rnCName}</span></th>
<th>
<html:button property="s1" value="删除" onclick="return chooseaction('shanchu',${rnid})"/>
<html:button property="s2" value="修改" onclick="choo('myinit',${rnid})"/>
</th>
</tr>
</logic:iterate>
如有其他疑问可以说下,呵呵。

你有两层循环,一个for,一个$each,肯定会多次

for(var i=0;i<datalength;i++){
                 $("#mytab tbody")append("<tr>");
                 $each(data,function(j,k){
                 alert(kid);
                 $("#mytab tbody")append("<td>"+j+"</td>");
                 $("#mytab tbody")append("<td>"+kid+"</td>");
                 $("#mytab tbody")append("<td>"+kbiaoti+"</td>");
                 $("#mytab tbody")append("<td>"+kthetime+"</td>");
                 });
                 $("#mytab tbody")append("</tr>");
                 }

改为:

$each(data,function(j,k){
    alert(kid);
    $("#mytab tbody")append("<tr>");
    $("#mytab tbody")append("<td>"+j+"</td>");
    $("#mytab tbody")append("<td>"+kid+"</td>");
    $("#mytab tbody")append("<td>"+kbiaoti+"</td>");
    $("#mytab tbody")append("<td>"+kthetime+"</td>");
    $("#mytab tbody")append("</tr>");
});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13329884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存