JSONファイル編集

8233 ワード


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 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{
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 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{
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{
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(「1つ削除」);
}
}
}
//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 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{
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();
}
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{
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{
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 editData = new HashMap();
//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"));
}


}