項目中遇到的一些問題(持續更新中)

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();
    }
}

https://img1.mukewang.com/5b18d0df00010e2f04930213.jpg

等待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;
相關文章
相關標籤/搜索