新增下方的Code: (POST的方式),在GenericResources內
@POST
@Path("setBtnInfo")
@Consumes(MediaType.APPLICATION_JSON)
public Response setBtnInfo(String input) {
//TODO return proper representation object
InputOutputHandler handler=new InputOutputHandler();
String p1=handler.getJsonObj(input,"p1");
String p2=handler.getJsonObj(input,"p2");
String p3=handler.getJsonObj(input,"p3");
String p4=handler.getJsonObj(input,"p4");
String p5=handler.getJsonObj(input,"p5");
String p6=handler.getJsonObj(input,"p6");
ArrayList<String> arr=new ArrayList<>();
arr.add(p1);
arr.add(p2);
String result=handler.changeToXMLString(arr);
//String rs="<Test><T><p1>12345</p1></T></Test>";
return Response.status(200).entity(result).build();
}
InputOutputHandler的Code:
package test;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.sql.rowset.CachedRowSet;
import org.json.JSONException;
import org.json.JSONObject;
/**
*
* @author USER
*/
public class InputOutputHandler {
//取得送入的Json參數內容
public String getJsonObj(String JsonSourceString,String tagName){
JSONObject j=null;
Object jsonOb=null;
try {
String tmp =JsonSourceString;
j = new JSONObject(tmp);
//getString是取json的內容值
//取節點是用 j.getJSONObject(tmp) 或getArray...
jsonOb = j.getString(tagName);
System.out.println("取得Json物件:>>>"+jsonOb);
}catch(JSONException e){
System.err.println("Error: " + e.getMessage());
}
return String.valueOf(jsonOb);
}
//把內容組成XML後回傳
public String changeToXMLString(ArrayList<String> content){
////String rs="<Test><T><p1>12345</p1></T></Test>";
String start="<vsvs><T>";
String cont="";
int i=0;
for(String str:content){
i++;
cont=cont+"<p"+i+">"+str+"</p"+i+">";
}
String end="</T></vsvs>";
String result=start+cont+end;
return result;
}
//從資料庫取資料並組成XML後回傳
//把ResultSet組成二階層Json字串
// demo {"AA":{"p1":"01","p2":"01"},"BB":{"p1":"01","p2":"01"}}
public String changeToXMLString(CachedRowSet inputRs,String... columnName){
String ans="<vsvs>";
int i=0;
try {
//ans=ans+"{\"";
while(inputRs.next()){
ArrayList<String> list=new ArrayList<>(); //用來存放每一列的資料
for(String name : columnName){
//String groupName=inputRs.getString("groupName");
String content=inputRs.getString(name);
list.add(content);
}
i++;
//組XML
ans=ans+"<E"+i+">";
int j=0;
//------迴圈----
for(String data :list){
j++;
ans=ans+"<p"+j+">"+data+"</p"+j+">";
}
//--------------
ans=ans+"</E"+i+">";
}
//--------------
ans=ans+"</vsvs>";
//記得去掉一個尾端的,最後再加上一個}
// ans=ans.substring(0,ans.length()-1);
// ans=ans+"}";
} catch (SQLException ex) {
}
return ans;
}
}
建完之後可以用Test來先測試一下。
如果測試OK,但連線時一直跳出404,通常都是URL錯了,有時看起來是正確的,但有可能在複製貼上時黏上了一些看不見的字元在內。
留言列表