如何取出json数组里面的元素

如何取出json数组里面的元素,第1张

先转成Dic,然后取出data,取出的data是array,然后for遍历一下。

data里面其实是个用户信息的数组,数组里的每个元素又是一个Json。

public static void jsonToBean(String data) {

try {

JSONArray array = new JSONArray(data);//将json字符串转成json数组

for (int i = 0; i < arraylength(); i++) {//循环json数组

JSONObject ob = (JSONObject) arrayget(i);//得到json对象

String name= obgetString("name");//name这里是列名称,获取json对象中列名为name的值

Systemoutprint(name);//输出name

} catch (JSONException e) {

}

}

json来做吧,先去下载下jar包。

下面是测试的代码:try{String str = "{'list':['1,2','3,4','5,6']}";JSONObject jsonObject = JSONObjectfromObject(str); //把转为json对象。String array= jsonObjectgetString("list"); //获取list的值。JSONArray jsonArray = JSONArrayfromObject(array); //把list的值转为json数组对象。Object[] strs = jsonArraytoArray(); //json转为数组。for(Object s:strs){Systemoutprintln(s);}}catch(Exception e){eprintStackTrace();}

字符串:字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似 字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[0]=“a”,s[9]="j",而字符串的 零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入 数组。

如果你只是偶尔查一次,那就遍历吧,用 []every 还是很容易写的,或者用 for in 也不难。

但是如果需要经常查找,那最好建立一个查找表,比如

function createLookMap(field) {

var map = {}

for (var i = 0; i < jsonArrlength; i++) {

var item = jsonArr[i]

var key = item[field]

map[field] = item

}

return map

}

var idMap = createLookMap("id")

在查找的时候只需要直接从 idMap 中取就行了

var id = needId()

var obj = idMap[id] // the found object or undefined

如果还需要按 name 来查找,可以再建一个查找表

var nameMap = creaetLookMap("name")

如果 name 不是唯一的,那创建查找表的时候就要耍点手段,保存一个数组而不是一个对象

function createLookMap(field) {

var map = {}

for (var i = 0; i < jsonArrlength; i++) {

var item = jsonArr[i]

var key = item[field]

var list = map[key]

fi (!list) {

map[key] = list = []

}

listpush(item)

}

return map

}

public static void jsonToBean(String data) {

try {

JSONArray array = new JSONArray(data);//将json字符串转成json数组

for (int i = 0; i < arraylength(); i++) {//循环json数组

JSONObject ob = (JSONObject) arrayget(i);//得到json对象

String name= obgetString("name");//name这里是列名称,获取json对象中列名为name的值

Systemoutprint(name);//输出name

} catch (JSONException e) {

}

}

先把获取的内容打印出来 ,看看是不是正常返回的数据

$filename = ">}

也可以根据你的框架功能,写成日志,方便出错时随时检查

另外 ,json_decode 可以接收一个参数来确定解析成对象还是数组

$content = '{"ip":"120239177231","pro":"广东省","proCode":"440000","city":"中山市","cityCode":"442000","region":"","regionCode":"0","addr":"广东省中山市 移通","regionNames":"","err":""}';

$json = json_decode($content,true);

echo $json['city'];

参考文档:PHP json_decode

package com;

import javautilList;

import comKensouPerson;

import comalibabafastjsonJSON;

public class Yuma

{

public static void main(String[] args)

{

String result =

        "{\"data1\":[{\"name\":\"aa\",\"age\":\"12\"},{\"name\":\"bb\",\"age\":\"13\"}],\"data2\":{\"nowpage\":1,\"pagesize\":2}}";

Kensou ps = JSONparseObject(result, Kensouclass);

Systemoutprintln(ps);

List<Person> data1 = psgetData1();

for(int i = 0; i < data1size(); i++)

{

Person p = data1get(i);

Systemoutprintln(p);

}

Person data2 = psgetData2();

Systemoutprintln(data2);

}

}

/

  模型对象不需要构造函数, 至少只需要setter方法<br>

  Person类可以是内嵌类,也可以是外部类 <br>

  Kensou类只能是外部类<br>

  集合类可以是数组或者List类型<br>

  <p>

  使用的是<font color="red">fastjson-1136jar</font>

 /

class Kensou

{

private List<Person> data1;

private Person data2;

public List<Person> getData1()

{

return data1;

}

public void setData1(List<Person> data1)

{

thisdata1 = data1;

}

public Person getData2()

{

return data2;

}

public void setData2(Person data2)

{

thisdata2 = data2;

}

@Override

public String toString()

{

return Stringformat("Kensou [data1=%s, data2=%s]", data1, data2);

}

class Person

{

private String name;

private int age;

private int nowpage;

private int pagesize;

public String getName()

{

return name;

}

public void setName(String name)

{

thisname = name;

}

public int getAge()

{

return age;

}

public void setAge(int age)

{

thisage = age;

}

public int getNowpage()

{

return nowpage;

}

public void setNowpage(int nowpage)

{

thisnowpage = nowpage;

}

public int getPagesize()

{

return pagesize;

}

public void setPagesize(int pagesize)

{

thispagesize = pagesize;

}

@Override

public String toString()

{

return Stringformat("Person [name=%s, age=%s, nowpage=%s, pagesize=%s]", name, age, nowpage, pagesize);

}

}

}

以上就是关于如何取出json数组里面的元素全部的内容,包括:如何取出json数组里面的元素、如何获取jsonobject里面的数组、如何从json数组中顺序读取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9340291.html

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

发表评论

登录后才能评论

评论列表(0条)

保存