JSONArray去重問題java
JSONArray array = ["2","0","0","0","0","0"]; private String[] instanceAaary(JSONArray array) throws JSONException{ String[] strs = new String[array.length()]; for (int i = 0; i < array.length(); i++) { strs[i] = array.getString(i); } List<String> result = new ArrayList<String>(); boolean flag; for(int i=0;i<strs.length;i++){ flag = false; for(int j=0;j<result.size();j++){ if(strs[i].equals(result.get(j))){ flag = true; break; } } if(!flag){ result.add(strs[i]); } } String[] arrayResult = result.toArray(new String[result.size()]); return arrayResult; } 輸出結果 ["2","0"];
解析json在本地建立xml文件node
public static final String CMD103 = "{"CMD_ID":103,"CONTENT":[[[2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],1,"00001\u91c7\u533a"]," + "[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],2,"00002\u91c7\u533a"]]}";
public void createAQDQ(Element root){ String[][] Data = null; //斷電區域代碼(根據煤礦井下區域劃分狀況設定,範圍爲0000-9999,不可重複。) String ss_poffarea_code = ""; // 斷電區域名稱 String ss_poffarea_name = ""; // 安全監控系統空間節點代碼(空間節點代碼不可重複) 暫時爲空 String ss_gisnode_code = ""; try { //區域定義 JSONObject obj = new JSONObject(CMD103); if (obj.has("CONTENT")) { JSONArray Array1 = obj.getJSONArray("CONTENT"); //獲取屬性名對應的二維數組 Data = new String[Array1.length()][]; for (int i = 0; i < Array1.length(); i++) { JSONArray Array2 = Array1.getJSONArray(i); //獲取一維數組 Data[i] = new String[Array2.length()]; for (int j = 0; j < Array2.length(); j++) { Data[i][j] = Array2.getString(j); //獲取二維數組中的數據 //斷電區域代碼 ss_poffarea_code = Data[i][1]; // 斷電區域名稱 ss_poffarea_name = Data[i][2]; } Element element = new Element("data").setAttribute("ss_poffarea_code", ss_poffarea_code) .setAttribute("ss_poffarea_name", ss_poffarea_name); JSONArray Array3 = Array2.getJSONArray(0); for (int k = 0; k < instanceAaary(Array3).length; k++) { // 安全監控系統空間節點代碼(空間節點代碼不可重複) ss_gisnode_code = Array3.getString(k); element.addContent(new Element("point").setAttribute("ss_gisnode_code",ss_gisnode_code)); } root.addContent(element); } } }catch (JSONException e){ e.printStackTrace(); } }
等待30S執行某方法web
long lCurrentTime = System.currentTimeMillis(); if(!bStart106 && !CMD106.equals("")){ lLastTime = System.currentTimeMillis(); bStart106 = true; } if(bStart106 && ((lCurrentTime-lLastTime)>=30*1000)){ lLastTime = lCurrentTime; createXML("AQSS"); }
//數據生成時間 public String getCs_data_time(){ String[][] Data = null; String cs_data_time = ""; try{ JSONObject obj101 = new JSONObject(CMD101); if (obj101.has("CONTENT")){ JSONArray Array1 = obj101.getJSONArray("CONTENT"); //獲取屬性名對應的二維數組 Data = new String[Array1.length()][]; for (int i = 0; i < Array1.length(); i++) { JSONArray Array2 = Array1.getJSONArray(i); //獲取CMD101一維數組 Data[i] = new String[Array2.length()]; for (int j = 0; j < Array2.length(); j++) { Data[i][j] = Array2.getString(j); //獲取CMD101二維數組中的數據 //數據生成時間 cs_data_time = Data[i][0]; } } } }catch (JSONException e){ e.printStackTrace(); } return cs_data_time; }
//檢測傳感器狀態 private String[] bitChannel(int ctbit){ String[] channel = new String[8]; for (int i = 0; i < channel.length; i++) { if((ctbit&0x1)==1){ channel[i]="1"; }else{ channel[i]="0"; } ctbit = ctbit>>1; } return channel; }
//去除重複 private String[] instanceAaary(JSONArray array) throws JSONException{ String[] strs = new String[array.length()]; for (int i = 0; i < array.length(); i++) { strs[i] = array.getString(i); } List<String> result = new ArrayList<String>(); boolean flag; for(int i=0;i<strs.length;i++){ flag = false; for(int j=0;j<result.size();j++){ if(strs[i].equals(result.get(j))){ flag = true; break; } } if(!flag){ result.add(strs[i]); } } String[] arrayResult = result.toArray(new String[result.size()]); return arrayResult; }
Java獲取websocket數據sql
package com.servlet; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.nio.channels.NotYetConnectedException; import org.java_websocket.WebSocket.READYSTATE; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft_17; import org.java_websocket.handshake.ServerHandshake; public class Client { public static WebSocketClient client; public static void main(String[] args) throws URISyntaxException, NotYetConnectedException, UnsupportedEncodingException { client = new WebSocketClient(new URI("ws://192.168.126.131:9999"),new Draft_17()) { EstablishXMLFile exf = new EstablishXMLFile(); @Override public void onOpen(ServerHandshake arg0) { System.out.println("打開連接"); } @Override public void onMessage(String arg0) { exf.recieveMessage(arg0); } @Override public void onError(Exception arg0) { arg0.printStackTrace(); System.out.println("發生錯誤已關閉"); } @Override public void onClose(int arg0, String arg1, boolean arg2) { System.out.println("連接已關閉"); } @Override public void onMessage(ByteBuffer bytes) { try { System.out.println(new String(bytes.array(),"utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }; client.connect(); while(!client.getReadyState().equals(READYSTATE.OPEN)){ System.out.println("尚未打開"); } System.out.println("打開了"); send("hello world".getBytes("utf-8")); client.send("hello world"); } public static void send(byte[] bytes){ client.send(bytes); } }
使double型數據按某種格式輸出json
ss_analog_value = new DecimalFormat("00.0").format(Double.parseDouble("3.26"));
獲取properties文件中的filename和URL數組
public String getPropertiesReader(String str){ Properties properties=new Properties();//獲取Properties實例 InputStream inStream=getClass().getResourceAsStream("config.properties");//獲取配置文件輸入流 try { properties.load(inStream);//載入輸入流 Enumeration enumeration=properties.propertyNames();//取得配置文件裏全部的key值 while(enumeration.hasMoreElements()){ String key=(String) enumeration.nextElement(); if(str.equals("cs_mine_code")&&key.equals("cs_mine_code")){ return properties.getProperty(key); }else if(str.equals("filename")&&key.equals("filename")){ return properties.getProperty(key); }else if(str.equals("url")&&key.equals("url")){ return properties.getProperty(key); } } } catch (IOException e) { e.printStackTrace(); } return ""; }
獲取txt配置文件(json數據格式)中的信息安全
private String getFormat(String type,String id,String str){ String ret = ""; try { File file = new File("kj66.txt"); InputStreamReader read = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader bufferedReader = new BufferedReader(read); StringBuffer buffer = new StringBuffer(); String lineTxt = null; while ((lineTxt = bufferedReader.readLine()) != null) { buffer.append(lineTxt); } JSONObject obj = new JSONObject(buffer.toString()); if(type.equals("simulate")){ //模擬量 JSONArray array_sim = obj.getJSONArray("simulate"); String[] sensorID_sim = new String[array_sim.length()]; String[] name_sim = new String[array_sim.length()]; String[] code_sim = new String[array_sim.length()]; String[] format_sim = new String[array_sim.length()]; String[] unit_sim = new String[array_sim.length()]; for(int i = 0; i < array_sim.length(); i++ ) { JSONObject json = array_sim.getJSONObject(i); sensorID_sim[i] = json.getString("sensorID"); name_sim[i] = json.getString("name"); code_sim[i] = json.getString("code"); format_sim[i] = json.getString("format"); unit_sim[i] = json.getString("unit"); if(sensorID_sim[i].equals(id)){ if(str.equals("name")){ return name_sim[i]; }else if(str.equals("code")){ return code_sim[i]; }else if(str.equals("format")){ return format_sim[i]; }else if(str.equals("unit")){ return unit_sim[i]; } } } } }catch (FileNotFoundException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } return ""; }
hashmap巧妙取代for循環websocket
private HashMap<String, String[]> CMD101_Hash = new HashMap<String, String[]>(); private void InitCMD101() { try { if(CMD101.equals("")) return; JSONObject obj = new JSONObject(CMD101); if (obj.has("CONTENT")) { JSONArray array = obj.getJSONArray("CONTENT"); //獲取屬性名對應的二維數組 if(array.equals("")) return; for (int i = 0; i < array.length(); i++) { JSONArray array2 = array.getJSONArray(i); //獲取CMD101一維數組 String[] data = new String[array2.length()]; for (int j = 0; j < array2.length(); j++) { data[j] = array2.getString(j); //獲取CMD101二維數組中的數據 } String code = formatToThree(data[26]) + data[23] + formatToTwo(data[24]); CMD101_Hash.put(code, data); } } }catch (JSONException e){ e.printStackTrace(); } } private String[] getProperty_tp(String str26,String str23,String str24) { String code = formatToThree(str26) + str23 + formatToTwo(str24); return CMD101_Hash.get(code); }
hashmap解析app
//新建一個hashmap往裏面放入20個(key,value)對。 Iterator<Integer> iterator= (Iterator<Integer>) hashMap.keySet().iterator(); //得到keyset的iterator,進行遍歷整個hashmap。 while(iterator.hasNext()) { Integer key=(Integer) iterator.next(); Integer val=(Integer)hashMap.get(key); System.out.println(key+": "+val); }
Oracle觸發器socket
create or replace trigger tr_u_sub_station before update on sub_station for each rowdeclare -- local variables herebegin if updating('is_effect') then RAISE_APPLICATION_ERROR('-20000','不能更新is_effect字段'); end if; end tr_u_sub_station;