文档章节

JSON文件编辑

无知的小孩
 无知的小孩
发布于 2015/11/04 11:29
字数 707
阅读 234
收藏 1

 

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;


import org.apache.commons.io.FileUtils;

import org.apache.commons.lang.StringUtils;


import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import com.google.gson.JsonElement;

import com.google.gson.JsonParser;



 

public class JSONDataUtils {

public static void edit(String f_json,String field,String fvalue,Map<String,Object> editData)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

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

{

JSONObject jo = ja.getJSONObject(i);

if(jo.getString(field).equals(fvalue))

{

System.out.println("修改前\t"+jo.toJSONString());

for(String key:editData.keySet())

{

jo.put(key, editData.get(key));

}

ja.set(i, jo);

System.out.println("修改后\t"+editData);

System.out.println("修改后\t"+jo.toJSONString());

System.out.println("修改后\t"+ja.getJSONObject(i).toJSONString());

}

}

data.put("rows", ja);

FileUtils.writeStringToFile(new File(f_json), jsonFormatter(data.toJSONString()),"utf-8");

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

}

public static void add(String f_json,Map<String,String> addData)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

ja.add(0,addData);

data.put("rows", ja);

data.put("total", data.getInteger("total")+1);

FileUtils.writeStringToFile(new File(f_json), jsonFormatter(data.toJSONString()),"utf-8");

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

}


public static void del(String f_json,String field,String fvalue)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

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

{

JSONObject jo = ja.getJSONObject(i);

if(jo.getString(field).equals(fvalue))

{

ja.remove(jo);

len -=1;

}

}

//System.out.println(ja.toJSONString());

data.put("rows", ja);

data.put("total", data.getInteger("total")-1);

//System.out.println(data.toJSONString());

FileUtils.writeStringToFile(new File(f_json), jsonFormatter(data.toJSONString()),"utf-8");

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

}

public static void batDel(String f_json,String field,String fvalues)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

String[] fv = fvalues.split(",");

System.out.println(fvalues);

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

{

JSONObject jo = ja.getJSONObject(i);

for(String fvalue:fv)

{

if(StringUtils.isBlank(fvalue)

||StringUtils.isEmpty(fvalue))

{

continue;

}

if(jo.getString(field).equals(fvalue))

{

ja.remove(jo);

len -= 1;

System.out.println("删除一条");

}

}

}

//System.out.println(ja.toJSONString());

data.put("rows", ja);

data.put("total", data.getInteger("total")-fv.length);

//System.out.println(data.toJSONString());

FileUtils.writeStringToFile(new File(f_json), jsonFormatter(data.toJSONString()),"utf-8");

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

}

@SuppressWarnings({ "unchecked", "static-access" })

public static Map<String,String> find(String f_json,String field,String fvalue)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

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

{

JSONObject jo = ja.getJSONObject(i);

if(jo.getString(field).equals(fvalue))

{

return jo.parseObject(jo.toJSONString(), HashMap.class);

}

}

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

return new HashMap<String, String>();

}

public static Integer findInteger(String f_json,String field,String fvalue,String ffield)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

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

{

JSONObject jo = ja.getJSONObject(i);

if(jo.getString(field).equals(fvalue))

{

return jo.getInteger(ffield);

}

}

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

return 0;

}

public static String findStr(String f_json,String field,String fvalue,String ffield)

{

String jsonList = "";

try {

jsonList = org.apache.commons.io.FileUtils.readFileToString(new File(f_json),"utf-8");

JSONObject data = JSON.parseObject(jsonList);

JSONArray ja = data.getJSONArray("rows");

int len = ja.size();

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

{

JSONObject jo = ja.getJSONObject(i);

if(jo.getString(field).equals(fvalue))

{

return jo.getString(ffield);

}

}

} catch (IOException e) {

System.out.println(jsonFormatter(jsonList));

e.printStackTrace();

}

return "";

}

/**

* @author 王乾

* @comments 格式化至可视模式

* @time 2015-11-4上午11:25:19

* @param uglyJSONString

* @return 

* @returnType String

* @modification

*/

public static String jsonFormatter(String uglyJSONString){

        Gson gson = new GsonBuilder().setPrettyPrinting().create();

        JsonParser jp = new JsonParser();

        JsonElement je = jp.parse(uglyJSONString);

        String prettyJsonString = gson.toJson(je);

        return prettyJsonString;

    }

 

public static void main(String[] args) {

String f_json = "D:\\workspaces\\demo\\WebRoot\\data\\bgs\\txl.json";

// Map<String,Object> editData = new HashMap<String, Object>();

// editData.put("txlstatu", "同意修改");

// JSONDataUtils.edit(f_json, "id", "txl-00001",editData);

// editData.put("id", "txl-00011");

// JSONDataUtils.add(f_json, editData);

// editData.put("id", "txl-00012");

// JSONDataUtils.add(f_json, editData);

// JSONDataUtils.del(f_json, "id", "txl-00012");

// JSONDataUtils.batDel(f_json, "id", "txl-00011,txl-00012");

System.out.println(JSONDataUtils.find(f_json, "id", "txl-00006"));

}


}


© 著作权归作者所有

无知的小孩
粉丝 1
博文 70
码字总数 19034
作品 0
贵阳
后端工程师
私信 提问
KingWTD/mockcat

Mockcat 开发工具集 项目简介 Mockcat是一款前端与后台分离开发的简易的接口Mock数据工具。提供了mock数据的模块化管理,接口数据的定义(支持带注释的JSON数据,自带JSON数据编辑器),以及...

KingWTD
2018/08/22
0
0
程序员也想改 Lottie 动画?是的!

一、前言 Hi,大家好,我是承香墨影! Lottie 是 Airbnb 开源的一套跨平台的完整的动画效果解决方案,用过都说好。完全解耦开发人员和设计师,让设计师设计的动画,在程序中无缝还原,真是一...

承香墨影
2018/10/29
0
0
JsonFromTree 树状结构导出到JSON数据的工具

如果有一个配置文件里存储一些简单的配置 例如: x=1 y=2 那么大可直接存储在文件中读取到内存中的一张表中。 可是存储一张树状结构数据,例如一个带有深层菜单项的数据结构如何存储到配置文件...

quanwei9958
2015/12/09
84
0
Node.js 切近实战(九) 之Excel在线(在线编辑)

之前有一节我给大家讲过文件列表,如下,今天我们要讲的就是Excel在线编辑。 当我们双击文件图标的时候会跳转到一个Excel修改界面,如下。 ok,这里我们使用的依然是Telerik Kendo UI中的Spr...

乐搏学院
2016/10/27
79
0
项目后端的设计思考

通常互联网自定义地图数据的后端存储,有三种实现方式:文件存储、数据库存储、文件结合数据库存储 本项目的不少灵感,来源于开源自定义地图编辑器umap,umap就是采用文件存储地图数据。文件...

炸酱面
2015/08/13
4
0

没有更多内容

加载失败,请刷新页面

加载更多

arduino项目-1. 模拟楼道灯

@toc 1.1 情景说明 说明 漆黑的夜晚,当有人非法进入一所房屋,房屋内的灯在恰当的时间亮起,也许会有效阻止非法活动的继续。 效果展示 1.2 实验器材 器材名称 数量 继电器 1 人体红外感应器...

acktomas
3分钟前
1
0
Nacos 常见问题及解决方法

Nacos 开源至今已有一年,在这一年里,得到了很多用户的支持和反馈。在与社区的交流中,我们发现有一些问题出现的频率比较高,为了能够让用户更快的解决问题,我们总结了这篇常见问题及解决方...

阿里云官方博客
9分钟前
2
0
pinyin4j 满足中文转拼音的需求

引入依赖 // https://mvnrepository.com/artifact/com.belerweb/pinyin4j //汉字转拼音compile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1' 写入中文转拼英的工具......

edison_kwok
15分钟前
2
0
IPSE接入Substrate/Polkadot插槽实现互操作性的运行原理

Substrate框架将区块链的众多功能都模块化,对于开发者来说,只是一个选择的问题,同时还保持了众多的可以定制的功能和模块,比如底层通信模块,比如账户体系,比如共识机制等都是可以自己定...

IPSE
20分钟前
15
0
linux配置安装phpMyAdmin的步骤记录

1、首先在phpMyAdmin官方网站 http://www.phpmyadmin.net/downloads下载源码包,或者通过脚本之家进行下载://www.jb51.net/codes/405261.html ,下载后上传到服务器解压即可,或者通过Linux...

蜗牛女孩
22分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部