本篇文章给大家谈谈爱阅书香之json解析教程,以及阅读书源json对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

json的解析

var obj = {

    “info”: {

        “success”: true,

        “code”: null,

        “error”: null

    },

    “data”: [{

        “id”: 1,

        “name”: “测试用户”,

        “loginName”: “test”,

        “password”: “test”,

        “mobile1”: null,

        “mobile2”: null,

        “telephone”: null,

        “email”: null,

        “gender”: null,

        “address”: null,

        “removed”: 0

    }, {

        “id”: 21,

        “name”: “研发团队测试”,

        “loginName”: “testTWW”,

        “password”: “testTWW”,

        “mobile1”: null,

        “mobile2”: null,

        “telephone”: null,

        “email”: null,

        “gender”: null,

        “address”: null,

        “removed”: 0

    }]

};

var data = obj[“data”];

爱阅书香之json解析教程(阅读书源json)插图

Java解析json数据

一、 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官网下载:)

然后将数据转为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 ListPerson getPersons(String jsonStr)

{

ListPerson list = new ArrayListPerson();

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格式是什么?

JSON格式:

比如学生有学号,姓名,性别等。

用json表示则为:

{“studno”:”11111″,”studname”:”wwww”,”studsex”:”男”}(各个字段都是字符型)

这代表一个学生的信息。

如果多个呢?

[{“studno”:”122222″,”studname”:”wwww”,”studsex”:”男”},

{“studno”:”11111″,”studname”:”xxxx”,”studsex”:”男”},

{“studno”:”33333″,”studname”:”ssss”,”studsex”:”男”}]

这就是json格式。

二、那如何操作json格式的文件呢?

这个更简单了,说白了就是直接读写文件,再把读出来的文件内容格式化成json就可以了。

三、具体操作。

1.我有一个实体类,如下:

public class ElectSet {

public String xueqi;

public String xuenian;

public String startTime;

public String endTime;

public int menshu;

public String isReadDB;

//{“xueqi”:,”xuenian”:,”startTime”:,”endTime”:,”renshu”:,”isReadDB”:}

public String getXueqi() {

return xueqi;

}

public void setXueqi(String xueqi) {

this.xueqi = xueqi;

}

public String getXuenian() {

return xuenian;

}

public void setXuenian(String xuenian) {

this.xuenian = xuenian;

}

public String getStartTime() {

return startTime;

}

public void setStartTime(String startTime) {

this.startTime = startTime;

}

public String getEndTime() {

return endTime;

}

public void setEndTime(String endTime) {

this.endTime = endTime;

}

public int getMenshu() {

return menshu;

}

public void setMenshu(int menshu) {

this.menshu = menshu;

}

public String getIsReadDB() {

return isReadDB;

}

public void setIsReadDB(String isReadDB) {

this.isReadDB = isReadDB;

}

}

2.有一个json格式的文件,存的就是他的信息,如下

Sets.json:

{“xuenian”:”2007-2008″,”xueqi”:”1″,”startTime”:”2009-07-19 08:30″,”endTime”:”2009-07-22 18:00″,”menshu”:”10″,”isReadDB”:”Y”}

3.具体操作.

/*

* 取出文件内容,填充对象

*/

public ElectSet findElectSet(String path){

ElectSet electset=new ElectSet();

String sets=ReadFile(path);//获得json文件的内容

JSONObject jo=JSONObject.fromObject(sets);//格式化成json对象

//System.out.println(“————” jo);

//String name = jo.getString(“xuenian”);

//System.out.println(name);

electset.setXueqi(jo.getString(“xueqi”));

electset.setXuenian(jo.getString(“xuenian”));

electset.setStartTime(jo.getString(“startTime”));

electset.setEndTime(jo.getString(“endTime”));

electset.setMenshu(jo.getInt(“menshu”));

electset.setIsReadDB(jo.getString(“isReadDB”));

return electset;

}

//设置属性,并保存

public boolean setElect(String path,String sets){

try {

writeFile(path,sets);

return true;

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return false;

}

}

//读文件,返回字符串

public String ReadFile(String path){

File file = new File(path);

BufferedReader reader = null;

String laststr = “”;

try {

//System.out.println(“以行为单位读取文件内容,一次读一整行:”);

reader = new BufferedReader(new FileReader(file));

String tempString = null;

int line = 1;

//一次读入一行,直到读入null为文件结束

while ((tempString = reader.readLine()) != null) {

//显示行号

System.out.println(“line ” line “: ” tempString);

laststr = laststr tempString;

line ;

}

reader.close();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (reader != null) {

try {

reader.close();

} catch (IOException e1) {

}

}

}

return laststr;

}

//把json格式的字符串写到文件

public void writeFile(String filePath, String sets) throws IOException {

FileWriter fw = new FileWriter(filePath);

PrintWriter out = new PrintWriter(fw);

out.write(sets);

out.println();

fw.close();

out.close();

}

4.调用,使用(在网站的controller里调用的)

//取出json对象

public void GetElectSettings(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ElectSet electset=new ElectSet();

String absPath = request.getRealPath(“\”);

String filePath = absPath “public\sets\electSets.json”;

electset=businessService.findElectSets(filePath);//这里是调用,大家自己改改,我调用的业务层 的。

JSONArray jsonItems = new JSONArray();

jsonItems.add(electset);

JSONObject jo=new JSONObject();

jo.put(“data”, jsonItems);

System.out.println(jo);

request.setCharacterEncoding(“utf-8”);

response.setContentType(“application/json;charset=utf-8”);

PrintWriter out = response.getWriter();

out.print(jo);

}

//修改json文件

public void ChangeElectSet(HttpServletRequest request,

HttpServletResponse response) throws Exception {

request.setCharacterEncoding(“UTF-8”);

response.setContentType(“text/json;charset=utf-8”);

log.info(“reach ChangeElectSet”);

String json = (String) request.getParameter(“json”).trim();

log.info(“Change ElectSet”);

log.info(json);

ElectSet sets = new ElectSet();

JSONObject jsonObject = JSONObject.fromObject(json);

sets = (ElectSet) JSONObject.toBean(jsonObject, ElectSet.class);

if(sets.getIsReadDB()==”false”){

sets.setIsReadDB(“否”);

}

else{

sets.setIsReadDB(“是”);

}

String changes=”{“xuenian”:””;//因为json的属性要用引号,所以要用”转义一下

changes =sets.getXuenian() “”,”xueqi”:”” sets.getXueqi() “”,”startTime”:”” sets.getStartTime() “”,”endTime”:”” sets.getEndTime() “”,”menshu”:”” sets.getMenshu() “”,”isReadDB”:”” sets.getIsReadDB() “”}”;

System.out.println(changes);

String absPath = request.getRealPath(“\”);

String filePath = absPath “public\sets\electSets.json”;

转载

如何解析json

如果用原生的js那就是eval来解析:

//jsonString 为Json格式字条串

var jsonObject =  eval(“(” +jsonString + “)”);

如果是jquery的话可以用$.parseJSON方法。

不过$.parseJSON只能支持标准的json格式,eval比较通用。

如果是要遍历json对象的话,直接用for循环或者for in循环输出对象就可以了。

//for in循环 obj是json数据

    for(x in obj.bkdata){

        //x表示是下标,来指定变量,指定的变量可以是数组元素,也可以是对象的属性。

        console.log(obj.bkdata[x]);

    }

希望能帮到你~~~

怎么解析这样的json

目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。

一、json_encode()

该函数主要用来将数组和对象,转换为json格式。先看一个数组转换的例子:

$arr = array (‘a’=1,’b’=2,’c’=3,’d’=4,’e’=5);

echo json_encode($arr);

结果为

{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}

由于json只接受utf-8编码的字符,所以json_encode()的参数必须是utf-8编码,否则会得到空字符或者null。当中文使用GB2312编码,或者外文使用ISO-8859-1编码的时候,这一点要特别注意。

二、索引数组和关联数组

PHP支持两种数组,一种是只保存”值”(value)的索引数组(indexed array),另一种是保存”名值对”(name/value)的关联数组(associative array)。

由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

比如,现在有一个索引数组

$arr = Array(‘one’, ‘two’, ‘three’);

echo json_encode($arr);

结果为:

[“one”,”two”,”three”]

三、类(class)的转换

下面是一个PHP的类: class Foo { const ERROR_CODE = ‘404’; public $public_ex = ‘this is public’; private $private_ex = ‘this is private!’; protected $protected_ex = ‘this should be protected’; public function getErrorCode() { return self::ERROR_CODE; } }

现在,对这个类的实例进行json转换:

$foo = new Foo;

$foo_json = json_encode($foo);

echo $foo_json;

输出结果是

{“public_ex”:”this is public”}

可以看到,除了公开变量(public),其他东西(常量、私有变量、方法等等)都遗失了。

怎么使用JSON解析

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

JSON 是存储和交换文本信息的语法。类似 XML。

JSON 比 XML 更小、更快爱阅书香之json解析教程,更易解析。

具体爱阅书香之json解析教程,推荐一个入门的JSON教程给您:

爱阅书香之json解析教程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于阅读书源json、爱阅书香之json解析教程的信息别忘了在本站进行查找喔。

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。