怎么用程序解析一个json文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用程序解析一个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";
转载
参考技术A 网上一大堆,比如这个http://www.bejson.com/index.php

微信小程序json数据如何处理?

1、小程序前端语言采用了 JSON WXML WXSS JS相当与就是 HTML5+CSS+JavaScript。

2、首先需要一个javascript文件或者html文件下的script标签。

3、引入jquery。

4、定义一个json格式的字符串。

5、转换成json格式后输出。

6、打开浏览器,右键->属性,访问这个html就可以看到输出的结果了。

参考技术A

1、首先新建一个小程序代码片段。

2、接着按照图示代码声明一个JSON对象。

3、然后按照图示代码用JSON.stringify将json对象转化为字符串。

4、而如果是要将json字符串解析成json对象就用json.parse即可。

5、在实际的项目中将json对象转化为字符串一般在发请求的时候使用。

6、如图将json串解析为json对象则是在获得的请求数据的时候。

参考技术B

JSON是极为重要的工具:小程序之间传递JSON。

1.    JSON.stingify()可以将JSON对象或者数组转换成json格式字符串。

2.    JSON.parse()将json格式的字符串,转换成JSON对象或者数组。

3.    wx.request()微信小程序的请求发送中文数据时候,需要转换。

使用:

1、JSONObject操作获取key对应的value。

2、JSONObject jsonObject=JSONObject.fromObject(objectitem);。

3、String productno = jsonObject.getString("productno");。

4、Integer number = jsonObject.getInt("number");。

5、 JSONArray获取第几个JSONObject。

6、jsonArray.get(0)。

小程序常见问题

问题一、未找到 /pages/test/test.wxml 文件 。

问题根源:在自动配置app.json时多加了一个斜杠,导致文件名字出错。

问题二、在页面里的.js文件里面加入的变量,未能成功传递到页面的.wxml文件里面,
或者显示加入的函数方法未找到 。

问题根源:在页面的.js文件里面没有.onload加载函数,该函数必须要有,才能实现变量参数值的传递,并且实现函数方法的调用。

以上是关于怎么用程序解析一个json文件的主要内容,如果未能解决你的问题,请参考以下文章

js怎么加载&解析json文件,原生的

python3.0怎么用json从文件解析

微信小程序里代码appjson字段需为object 怎么改

json是啥文件怎么打开

微信小程序json数据如何处理?

java怎么解析Wireshark抓包文件