问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

class<t>类型的json怎么解析

发布网友 发布时间:2022-04-10 09:32

我来回答

1个回答

热心网友 时间:2022-04-10 11:02

一、 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;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 转换后的word文档存到哪里去了啊? WORD中的简繁转换在什么地方 关于Word中的简繁转换在哪里? 韭苔能和香菇一起炒吗 韭苔炒螺肉的做法,韭苔炒螺肉怎么做好吃,韭苔 韭苔炒羊肉的做法,韭苔炒羊肉怎么做好吃,韭苔 土豆丝炒韭苔的做法,土豆丝炒韭苔怎么做好吃 韭菜苔炒羊肉的做法,韭菜苔炒羊肉怎么做好吃 韭苔能做什么菜 韭苔的做法大全 理光5054初张启动速度慢是怎么回事。。。 理光mp5054sp支持xp吗 理光5054复印机 硒鼓上,有个小部件,因为换废粉螺旋杆 ,忘了安在什么位置了?,求教 各位大师! 理光5054复印机硒鼓可以印多少张 请问ricoh(理光) MP5054SP 怎么进维修模式啊? 理光5054打印机卡纸严重。每次输出的第一张纸肯定卡。卡的鼔和定影之间的位置。跪求大神帮帮忙, 理光5054复印机 复印效果没有问题 连电脑打印就那个没有普通打印机那么黑色应该是字体没有那么粗? 理光5054换中文 理光5054不开机了 理光5054请正确设置定影单元 理光5054不加粉 谈婚论嫁的人梦见请公婆吃饭,公婆表面很开心,但我,和我爸妈都不开心这是什么意思? 梦见和已故婆婆办席 大年初一梦见我们给去世婆婆送饭时她刚准备去我家吃饭啦,我们约好让... 梦见已故的婆婆来家里吃饭,自己没有和她一起吃? 呃梦见婆婆说请亲戚吃饭让我去叫人? 我微信好友有2000多人,差不多5分之4都是微商!怎么快速删除啊&#128547;&#128547 我的微信好友有2000多,怎么看他们有没有删掉我,如何快速删掉删我的人? 阿里斯顿热水器清水垢需要多少钱? 澳柯玛热水器售后服务换镁棒多长时间换?大概多少钱?清洗水垢大概多少钱? 通过H车牌开头是什么车牌 京东白条的立减券和免息券可以一起用吗? 有H的标记的是什么牌车 汽车H是什么牌的 安全守护。一个电话手表可以绑定多个手机? 韦小宝电话手表能同时连两个大人手机吗? 求lol vn高清头像 如图 要高清 db2 sql怎么解析json LOL源计划VN头像怎么怎么获得 视频上vn的头像是情人节皮肤的头像我也买了情人节皮肤怎么头像还是以前那个 先用金猪币买了猪年VN边框和头像再买皮肤会便宜多少,