我每天都在学习关于android开发和json代码的更多信息。 但现在我坚持这个; 我可以从我的在线数据库中获取我的值并显示它,但我看到了整个json代码。 我希望看到我希望它展示的部分。
这是我的代码,我认为它非常基本,但我也在学习:)
正如你所看到的那样,我只是从网页上获取值并将其放入我的textview中,但是我想把它放在JSONObject或JSONArray中,不知道是不是更好。
有人可以帮助我吗?
亲切的问候
public class Bordje extends Activity{
public void onCreate (Bundle savedInstanceState) {
try
{
super.onCreate(savedInstanceState);
setContentView(R.layout.bordje);
//This is out textview element, obtained by id from XML Layout
TextView myListView = (TextView)findViewById(R.id.netResult2);
//Lets connect to the internet
try {
String result = "";
//create new client object
HttpClient httpclient = new DefaultHttpClient();
//now post to the url
HttpPost httppost = new HttpPost("http://www.wvvzondag2.nl/android/leesbordje.php");
//execute url
HttpResponse response = httpclient.execute(httppost);
//get message from the response
HttpEntity entity = response.getEntity();
//get the content from message
InputStream webs = entity.getContent();
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(webs, "iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
//slow our inputstream
webs.close();
//puts the resut into a string
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//Parsing the JSON Data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
json_data.getString("introtext");
//Get an output to the screen
//then here should be some code that displays text?
//myListView.setText(Html.fromHtml(json_data)); ?
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
catch (Exception e)
{
//this is the line of code that sends a real error message to the log
Log.e("ERROR", "ERROR IN CODE: " + e.toString());
}
}
答案 0 :(得分:2)
这不是一个更好的问题。 JSON对象和JSON数组是两回事。
JSON数组是(类似)项目的有序序列(http://www.json.org/javadoc/org/json/JSONArray.html)。
JSONArray jsonArray = new JSONArray("[JSON TEXT]");
String textToDisplay = jsonArray.getString(index); //return String at index
JSON对象是一张地图(http://www.json.org/javadoc/org/json/JSONObject.html)。
JSONObject jsonObj = new JSONObject("[JSON TEXT]");
String textToDisplay = jsonObj.getString("key"); //returns String value
然后,在获得数据之后,像以前一样在文本视图中设置它。
myListView.setText(textToDisplay);
答案 1 :(得分:0)
如果你从服务器获得有效的json,你只需要根据你得到的对象制作一个JSONArray
或JSONObject
,所以没有必要说哪一个更好。但是在你的情况下,它很可能是一个JSONArray。
为了实现这一点,您可以使用gson将有效的json字符串转换为JSONObject
或JSONArray
。
您将使用.toJson()
和.fromJSON(object)
方法。