안드로이드,JSON 내가 넷빈즈에서이 웹 서비스를 구축 ListView에
package in.figures.on.mobile;
import db.koneksi.dbKoneksi;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.json.simple.JSONValue;
/**
*
* @author Setyadi
*/
@WebService()
public class AksesData {
/**
* Web service operation
*/
@WebMethod(operationName = "Kategori")
public String Kategori() {
//TODO write your implementation code here:
dbKoneksi con = new dbKoneksi();
Statement statement;
Properties properties;
List list = new ArrayList();
String sql = "SELECT idPrimary_key, kategori FROM kategori ";
ResultSet hasil;
String kategori = null;
try{
statement = con.getConnection().createStatement();
hasil = statement.executeQuery(sql);
while (hasil.next()) {
properties = new Properties();
properties.put("idPrimary_key", hasil.getString(1));
properties.put("kategori", hasil.getString(2));
list.add(properties);
}
kategori = JSONValue.toJSONString(list);
}
catch(Exception e){
}
return kategori;
}
}
그리고이
[{"idPrimary_key":"21ye21","kategori":"FirstCategory"},
{"idPrimary_key":"89oy89","kategori":"SecondCategory"},
{"idPrimary_key":"34ew34","kategori":"ThirdCategory"}]
같은 JSON을 반환 그리고이 같은 안드로이드의 ListView에 소비하려고 노력하지만, 여전히
오류가있어 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE transportSE = new HttpTransportSE(URL);
try {
transportSE.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
result = response.toString();
} catch (Exception e) {
e.printStackTrace();
}
String jsonAN = "{\"kat\":"+result+"}"; //try to build to be like this {"kat":[{blablablaJSON}]}
String kategoriJSONList[][] = new String[99][2];
String katList[] = new String[99]; //tobe shown on listview, derived from two dimensional array above.
try {
jsonObject = new JSONObject(jsonAN);
jsonArray = jsonObject.getJSONArray("kat");
for(int i=0; i < jsonArray.length() ; i++){
kategoriJSONList[i][0] = jsonArray.getJSONObject(i).getString("idPrimary_key").toString();
kategoriJSONList[i][1] = jsonArray.getJSONObject(i).getString("kategori").toString();
}
for(int i=0; i < jsonArray.length(); i++){
katList[i] = kategoriJSONList[i][1];
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ListView list = (ListView) findViewById(R.id.listKategori);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
WebServiceActivity.this, android.R.layout.simple_list_item_1,katList
);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
final String kategori = (String) ((TextView)arg1).getText();
Toast.makeText(WebServiceActivity.this, kategori,
Toast.LENGTH_LONG).show();
}
});
위와 같이 반환 된 JSONValue를 ListView로 표시하는 방법을 알려주십시오. 요즘 스트레스를받습니다. 미리 감사드립니다.
어떤 종류의 오류가 발생하는지 알 수 있습니까? JSON에 대해 알고있는 한 JSONObject는 항상 쌍 값이고 [{ "var1", "var2", "var3", ..., "...}"의 구문은 코드에 기반하여 추측 할 수 있습니다. varn "}]은 나에게 다소 이상하며 [{label1 : value1, label2 : value2, label3 : value3, ..., labeln : valuen}]과 같아야합니다. 그것을 확인하시기 바랍니다! ;-) – mthama
죄송합니다. 허위, 오타입니다. \t [{ "idPrimary_key": "21ye21", "kategori": "에서 FirstCategory"} \t { "idPrimary_key": "89oy89", "kategori": "SecondCategory"} \t { "idPrimary_key": " 34ew34 ","kategori ":"ThirdCategory "}] 편집했습니다. – AdityaSetyadi
흠 ... 좋아요, 그래서 당신의 실수는 json 문제에서 오는 것이 아닙니다. 오류 (유형, 로그캣, 예외 등)에 대한 자세한 정보를 제공 할 수 있습니까? 목록 어댑터 코드를 게시 할 수 있습니까? :) – mthama