jsonArray-200

问题描述:json 怎么解析 大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,现在让我们一起来看看吧!

后台json的值是一个jsonarray,前台如何用foreach遍历

jsonArray-200的相关图片

一、 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。

Json建构于两种结构:

1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 如:

“name”:”jackson”,。

“age”:100

2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)如:

“students”:

{“name”:”jackson”,“age”:100},。

{“name”:”michael”,”age”:51}。

二、java解析JSON步骤

A、服务器端将数据转换成json字符串。

首先、服务器端项目要导入json的jar包和json所依赖的jar包至builtPath路径下(这些可以到JSON-lib官网下载:http://json-lib.sourceforge.net/)

然后将数据转为json字符串,核心函数是:

public static String createJsonString(String key, Object value)。

JSONObject jsonObject = new JSONObject();。

jsonObject.put(key, value);。

return jsonObject.toString();。

B、客户端将json字符串转换为相应的javaBean。

1、客户端获取json字符串(因为android项目中已经集成了json的jar包所以这里无需导入)

public class HttpUtil。

public static String getJsonContent(String urlStr)。

try

{// 获取HttpURLConnection连接对象。

URL url = new URL(urlStr);。

HttpURLConnection httpConn = (HttpURLConnection) url。

.openConnection();。

// 设置连接属性

httpConn.setConnectTimeout(3000);。

httpConn.setDoInput(true);。

httpConn.setRequestMethod("GET");。

// 获取相应码

int respCode = httpConn.getResponseCode();。

if (respCode == 200)。

return ConvertStream2Json(httpConn.getInputStream());。

catch (MalformedURLException e)。

// TODO Auto-generated catch block。

e.printStackTrace();。

catch (IOException e)。

// TODO Auto-generated catch block。

e.printStackTrace();。

return "";

private static String ConvertStream2Json(InputStream inputStream)。

String jsonStr = "";。

// ByteArrayOutputStream相当于内存输出流。

ByteArrayOutputStream out = new ByteArrayOutputStream();。

byte[] buffer = new byte[1024];。

int len = 0;

// 将输入流转移到内存输出流中。

try

while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)。

out.write(buffer, 0, len);。

// 将内存流转换为字符串

jsonStr = new String(out.toByteArray());。

catch (IOException e)。

// TODO Auto-generated catch block。

e.printStackTrace();。

return jsonStr;。

2、获取javaBean

public static Person getPerson(String jsonStr)。

Person person = new Person();。

try

{// 将json字符串转换为json对象。

JSONObject jsonObj = new JSONObject(jsonStr);。

// 得到指定json key对象的value对象。

JSONObject personObj = jsonObj.getJSONObject("person");。

// 获取之对象的所有属性

person.setId(personObj.getInt("id"));。

person.setName(personObj.getString("name"));。

person.setAddress(personObj.getString("address"));。

catch (JSONException e)。

// TODO Auto-generated catch block。

e.printStackTrace();。

return person;

public static List<Person> getPersons(String jsonStr)。

List<Person> list = new ArrayList<Person>();。

JSONObject jsonObj;。

try

{// 将json字符串转换为json对象。

jsonObj = new JSONObject(jsonStr);。

// 得到指定json key对象的value对象。

JSONArray personList = jsonObj.getJSONArray("persons");。

// 遍历jsonArray

for (int i = 0; i < personList.length(); i++)。

// 获取每一个json对象

JSONObject jsonItem = personList.getJSONObject(i);。

// 获取每一个json对象的值。

Person person = new Person();。

person.setId(jsonItem.getInt("id"));。

person.setName(jsonItem.getString("name"));。

person.setAddress(jsonItem.getString("address"));。

list.add(person);。

catch (JSONException e)。

// TODO Auto-generated catch block。

e.printStackTrace();。

return list;

如何解析返回的json格式数据的相关图片

如何解析返回的json格式数据

vue页面内容

<el-table

:data="lists"

height="400px"

size="small"

border="true"

stripe="true">。

<el-table-column prop="name" label="姓名" width="200"></el-table-column>。

<el-table-column prop="age" label="年龄" width="60"></el-table-column>。

</el-table>。

js部分:

data: function () {。

return {

lists: [

{name:'张三', age: '22'},。

{name:'李四', age: '23'},。

{name:'王五', age: '24'},。

json多层数组解析问题的相关图片

json多层数组解析问题

json数据格式解析我自己分为两种;

一种是普通的,一种是带有数组形式的;

普通形式的:

服务器端返回的json数据格式如下:

复制代码代码如下:

{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}。

分析代码如下:

复制代码代码如下:

// TODO 状态处理 500 200 。

int res = 0; 。

res = httpClient.execute(httpPost).getStatusLine().getStatusCode(); 。

if (res == 200) { 。

/* 。

* 当返回码为200时,做处理 。

* 得到服务器端返回json数据,并做处理 。

* */ 。

HttpResponse httpResponse = httpClient.execute(httpPost); 。

StringBuilder builder = new StringBuilder(); 。

BufferedReader bufferedReader2 = new BufferedReader( 。

new InputStreamReader(httpResponse.getEntity().getContent())); 。

String str2 = ""; 。

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2 。

.readLine()) { 。

builder.append(s); 。

} 。

Log.i("cat", ">>>>>>" + builder.toString());。

JSONObject jsonObject = new JSONObject(builder.toString()) 。

.getJSONObject("userbean");。

String Uid; 。

String Showname; 。

String Avtar; 。

String State;。

Uid = jsonObject.getString("Uid"); 。

Showname = jsonObject.getString("Showname"); 。

Avtar = jsonObject.getString("Avtar"); 。

State = jsonObject.getString("State");。

带数组形式的:

服务器端返回的数据格式为:

复制代码代码如下:

{"calendar":

{"calendarlist": 。

[

{"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false}, 。

{"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false} 。

]

}

分析代码如下:

复制代码代码如下:

// TODO 状态处理 500 200 。

int res = 0; 。

res = httpClient.execute(httpPost).getStatusLine().getStatusCode(); 。

if (res == 200) { 。

/* 。

* 当返回码为200时,做处理 。

* 得到服务器端返回json数据,并做处理 。

* */ 。

HttpResponse httpResponse = httpClient.execute(httpPost); 。

StringBuilder builder = new StringBuilder(); 。

BufferedReader bufferedReader2 = new BufferedReader( 。

new InputStreamReader(httpResponse.getEntity().getContent())); 。

String str2 = ""; 。

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2 。

.readLine()) { 。

builder.append(s); 。

} 。

Log.i("cat", ">>>>>>" + builder.toString()); 。

/** 。

* 这里需要分析服务器回传的json格式数据,

*/ 。

JSONObject jsonObject = new JSONObject(builder.toString()) 。

.getJSONObject("calendar"); 。

JSONArray jsonArray = jsonObject.getJSONArray("calendarlist"); 。

for(int i=0;i<jsonArray.length();i++){ 。

JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i); 。

CalendarInfo calendarInfo = new CalendarInfo(); 。

calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id")); 。

calendarInfo.setTitle(jsonObject2.getString("title")); 。

calendarInfo.setCategory_name(jsonObject2.getString("category_name")); 。

calendarInfo.setShowtime(jsonObject2.getString("showtime")); 。

calendarInfo.setEndtime(jsonObject2.getString("endshowtime")); 。

calendarInfo.setAllDay(jsonObject2.getBoolean("allDay")); 。

calendarInfos.add(calendarInfo); 。

}。

总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。

怎么将json对象添加进json数组中的相关图片

怎么将json对象添加进json数组中

帮你解析部分吧,其他的模仿就行了,运行下试试看,记得导入包。

JSONObject jsonObject = JSONObject.fromObject("你的JSON串");。

JSONArray results = JSONArray.fromObject(jsonObject.get("results"));。

for (int i = 0; i < results.size(); i++) {。

if(i > 0) {。

break;

}

JSONObject result = JSONObject.fromObject(results.get(i));。

JSONObject user = JSONObject.fromObject(result.get("user"));。

System.out.println("gender:" + user.get("gender"));。

JSONObject name = JSONObject.fromObject(user.get("name"));。

System.out.println("title:" + name.get("title"));。

}

java数组装换。。。如下

1、使用原生的解析:

String json = "...";。

JSONArray array= new JSONArray(json);。

//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:。

for (int j = 0; j < array.length(); j++) {。

obj = array.getJSONObject(j);。

Data data = new Data();。

data.setThumbnail(obj.getString("thumbnail"));。

data.setTitle(obj.getString("title"));。

data.setUrl(obj.getString("url"));。

mDataList.add(data);。

2、使用第三方包如Gson,但是这个你得保证你的JSON字符串个z。

原文地址:http://www.qianchusai.com/jsonArray-200.html

伊美源-20,伊美源减肥产品有人用过吗?

伊美源-20,伊美源减肥产品有人用过吗?

lw/最长方形图片大全大图

lw/最长方形图片大全大图

lw/以保持健康英语手抄报,以保持健康为主题的英语手抄报

lw/以保持健康英语手抄报,以保持健康为主题的英语手抄报

怡玥197-10,怡玥197减肥怎么样安全吗

怡玥197-10,怡玥197减肥怎么样安全吗

沴戾-90,沴戾是什么意思

沴戾-90,沴戾是什么意思

卡友-30,卡友彭松事件原因

卡友-30,卡友彭松事件原因

greenville-160

greenville-160

sophy,sophyspeaking是什么意思

sophy,sophyspeaking是什么意思

Small降到二区,small期刊降二区

Small降到二区,small期刊降二区

命令行搭建stm32,搭建stm32开发环境

命令行搭建stm32,搭建stm32开发环境