JSon 读写

public class JsonTool {
 
 public static void createJson() {
  JSONObject json = new JSONObject();
  JSONArray device = new JSONArray();
  for (int i = 0; i < DeviceStateManager.getInstance()
    .getAllDeviceState().size(); i++) {
   JSONObject subJson = new JSONObject();
   try {
    subJson.put("ID", DeviceStateManager.getInstance()
      .getAllDeviceState().get(i).getmDeviceId());
    subJson.put("DeviceType", DeviceStateManager.getInstance()
      .getAllDeviceState().get(i).getmDeviceType());
    subJson.put("State", DeviceStateManager.getInstance()
      .getAllDeviceState().get(i).getmDeviceState());
    subJson.put("DeviceName", DeviceStateManager.getInstance()
      .getAllDeviceState().get(i).getmDeviceName());
   } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   device.put(subJson);
  }
  try {
   json.put("Devices", device);
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  Log.d("TCP服务", "json----->" + json);
 }
 
 public static void write(File file,CopyOnWriteArrayList<DeviceState> messages) {
  JsonWriter writer = null;
  try {
   writer = new JsonWriter(new OutputStreamWriter(new FileOutputStream(file),"UTF-8"));
   writer.setIndent("  ");
   writeMessageArray(writer, messages);
   writer.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 private static void writeMessageArray(JsonWriter writer,CopyOnWriteArrayList<DeviceState> messages) throws IOException {
   writer.beginArray();
  for (DeviceState message : messages) {
   writeMessage(writer, message);
  }
   writer.endArray();
 }
 
 private static void writeMessage(JsonWriter writer,DeviceState message) throws IOException {
  writer.beginObject();
  writer.name("ID").value(message.getmDeviceId());
  writer.name("DeviceType").value(message.getmDeviceType());
  writer.name("State").value(message.getmDeviceState());
  writer.name("DeviceName").value(message.getmDeviceName());
  writer.endObject();
 }
 
 public static List read(File file) throws Exception {
  JsonReader reader = new JsonReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
  try {
   return readMessageArray(reader);
  } finally{
   reader.close();
  }
 }
 
 private static List readMessageArray(JsonReader reader) throws IOException {
  List messages = new CopyOnWriteArrayList<DeviceState>();
  
  reader.beginArray();
  while (reader.hasNext()) {
   messages.add(readMessage(reader));
   
  }
  reader.endArray();
  return messages;
 }
 
 private static DeviceState readMessage(JsonReader reader) throws IOException {
  String ID = null;
  String DeviceTpye = null;
  String State = null;
  String DeviceName = null;
  
  reader.beginObject();
  while (reader.hasNext()) {
   String name = reader.nextName();
   if (name.equals("ID")) {
    ID = reader.nextString();
   }else if (name.equals("DeviceType")) {
    DeviceTpye = reader.nextString();
   }else if (name.equals("State")) {
    State = reader.nextString();
   }else if (name.equals("DeviceName")) {
    DeviceName = reader.nextString();
   }else {
    reader.skipValue();
   }
  }
  reader.endObject();
  DeviceState mDeviceState = new DeviceState();
  mDeviceState.setmDeviceId(ID);
  mDeviceState.setmDeviceName(DeviceName);
  mDeviceState.setmDeviceState(State);
  mDeviceState.setmDeviceType(DeviceTpye);
  try {
   return mDeviceState;
  } finally {
   mDeviceState = null;
  }
  
 }
 
}

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

public class JsonWriteUtil {
 
 /**
  * 将文件中的数据读取为string
  * @return
  */
 private String getJSONFileContent(File mFile) {
  String fileContent = "";
  FileInputStream fins = null;
  ByteArrayOutputStream bos = null;
  byte [] buf = new byte[1024];
  int len = -1;
  try {
   fins = new FileInputStream(mFile);
   bos = new ByteArrayOutputStream();
   while ((len = fins.read(buf)) != -1) {
    bos.write(buf,0,len);
   }
   bos.close();
   fins.close();
   fileContent = bos.toString();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return fileContent;
 }
 
 /**
  * 创建json文件时,写入json数据
  */
 
 private void writeFile(File file,String sets) {
  FileWriter fw = null;
  try {
   fw = new FileWriter(file);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  PrintWriter pw = new PrintWriter(fw);
  pw.write(sets);
  pw.close();
  try {
   fw.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
     /**
      * 删除一条json数据
      */
 
 public boolean deleteJsonData(String key,File file) {
  boolean result = false;
  JSONObject jsonObject = null;
  try {
   jsonObject = new JSONObject(getJSONFileContent(file));
   jsonObject.remove(key);
   result = true;
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return result;
 }
 
 /**
  * 写入文件的方法
  */
 
 public boolean write2JsonFile(String key,String value,File file) {
  boolean result = false;
  try {
   if (file.exists()) {
    JSONObject jsonObject = new JSONObject(this.getJSONFileContent(file));
    jsonObject.put(key, value);
    writeFile(file, jsonObject.toString());
    result = true;
   }else {
    try {
     file.createNewFile();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    JSONObject jsonObject = new JSONObject();
    jsonObject.put(key, value);
    writeFile(file, jsonObject.toString());
    result = true;
   }
  } catch (JSONException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return result;
 }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值