如何从php中获取android中的简单json数据

我是java / android的新手。 我通过互联网搜索了许多教程。 但那些没有帮助我。 所以我在这里发布了这个问题。</ p>

我在php中有简单的json数据,如下所示,</ p>

  [{“title”:“  re3“,”notice“:”etrf4w“},{”title“:”vfdxg“,”notice“:”fdgd“},{”title“:”notice1“,”notice“:”details ...“}  ] 
</ code> </ pre>

我想在android中将这个json数据显示为如下所示的纯文本,</ p>

标题:re3 </ p>

通知:etrf4w
.....................
............. ...... </ p>

我怎么能这样做。 请帮帮我。</ p>
</ div>

展开原文

原文

I am totally new to java/android . I have searched many tutorials over the internet. But those didnt helped me. So I have posted this problem here.

I have simple json data in php like below,

[{"title":"re3","notice":"etrf4w"},{"title":"vfdxg","notice":"fdgd"},  {"title":"notice1","notice":"details..."}]

I want to show this json data in android as a plain text like below,

Title:re3

notice: etrf4w ..................... ...................

How could I do that. please help me.

doubi7739
doubi7739 你在考虑使用库来执行这个json解析吗?
6 年多之前 回复
dongpu2727
dongpu2727 你试过什么?
6 年多之前 回复
dtiu94034
dtiu94034 你有没有尝试过什么?
6 年多之前 回复

4个回答



这是exmaple </ p>

  private Handler handler = new Handler(){\  n 
@Override
public void handleMessage(Message msg){
switch(msg.what){
case 1:{
showList();
} break;
}
}

\ n};

/ **首次创建活动时调用。 * /
@Opride
void void onCreate(Bundle savedInstanceState)
{
/ *
您的初始化代码在这里

  • /

新的Thread(){

@Override
public void run(){
String resp = loadURLData(JSON_URL);

MainActivity.this.items = new ArrayList&lt; Item&gt;();

尝试{
JSONArray items = new JSONArray(resp); \ n
for(int i = 0; i&lt; items.length(); i ++){
JSONObject item = items.getJSONObject(i);

String title = item.getString(“title”);

String notice = item.getString(“notice”);

Item it = new Item(title,notice);
}

handler.sendEmptyMessage(1);
} catch(JSONException jSONEx ){
}
}

} .start();
}

private void showList(){
ListAdapter adapter = new MyAdapter(this,items);
listView.setAdapter(adapter) );
}

提供静态字符串loa dURLData(String msgsUrl){
try {
URL url = new URL(msgsUrl);

URLConnection conn = url.openConnection();
InputStreamReader streamReader = new InputStreamReader(conn.getInputStream());

BufferedReader br = new BufferedReader(streamReader);
StringBuilder sb = new StringBuilder(); \ n String line = null;
while((line = br.readLine())!= null){
sb.append(line); sb.append(“
”);
}
br。 close();
String resp = sb.toString();

返回resp;
} catch(IOException iOEx){
return“”;
}
}
</ code> < / pre>
</ div>

展开原文

原文

Here is the exmaple

private Handler handler = new Handler(){

    @Override
    public void handleMessage(Message msg) {
        switch(msg.what){
            case 1:{
                showList();
            }break;
        }
    }

};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
    /*
    Your initialization code here
    */

    new Thread(){

        @Override
        public void run() {
            String resp = loadURLData(JSON_URL);

            MainActivity.this.items = new ArrayList<Item>();

            try{
                JSONArray items = new JSONArray(resp);

                for(int i = 0; i < items.length(); i++){
                    JSONObject item = items.getJSONObject(i);

                    String title = item.getString("title");
                    String notice = item.getString("notice");

                    Item it = new Item(title, notice);
                }

                handler.sendEmptyMessage(1);
            }catch(JSONException jSONEx){
            }
        }

    }.start();
}

private void showList(){
    ListAdapter adapter = new MyAdapter(this, items);
    listView.setAdapter(adapter);
}

private static String loadURLData(String msgsUrl){
    try{
        URL url = new URL(msgsUrl); 
        URLConnection conn = url.openConnection();
        InputStreamReader streamReader = new InputStreamReader(conn.getInputStream());

        BufferedReader br = new BufferedReader(streamReader);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while((line = br.readLine()) != null) {
            sb.append(line);sb.append("
");
        }
        br.close();
        String resp = sb.toString();

        return resp;
    }catch(IOException iOEx){
        return "";
    }
}

drwjv28028
drwjv28028 好的,我已经更新了我的帖子
6 年多之前 回复
drx3157
drx3157 感谢您的回复。 但我说我是android / java的新手。 当我尝试使用您的代码时,应用程序崩溃并回复“遗憾的是<应用程序名称>已停止”。请问您能帮帮我吗?
6 年多之前 回复
duanchi0883649
duanchi0883649 我已经更新了我的帖子
6 年多之前 回复
dstnlhhv791576
dstnlhhv791576 感谢您的回答。 它看起来很容易。 但在显示json数据之前,我必须从php获取数据。 我怎样才能做到这一点? 我的php在localhost(127.0.0.1)
6 年多之前 回复



试试这个.. </ p>

[</ strong> =&gt; JSONArray </ code> </ p>

{</ strong> =&gt; JSONObject </ code> </ p>

  String response =“你的字符串格式的响应”; 
JSONArray new_array = new JSONArray(response);
for(int i = 0 ; i&lt; new_array.lenght; i ++){
JSONObject obj = new_array.getJSONObject(i);
//您可以从obj.getString(“title”)获取Title,如下所示
System.out.println( “标题:”+ obj.getString(“title”));
//您可以从obj.getString(“notice”)获取通知,如下所示
System.out.println(“Notice:”+ obj.getString (“通知”));
}
</ code> </ pre>

JSON解析turorials </ strong> </ p>

http://www.androidhive.info/2012/01/android-json- 解析 - 教程/ </ p>

http://androidexample.com/JSON_Parsing_-_Android_Example/index.php?view=article_discription&amp;aid=71&amp;aaid=95 </ p>
</ div>

展开原文

原文

Try this..

[ => JSONArray

{ => JSONObject

String response = "Your Response in String format";
JSONArray new_array = new JSONArray(response);
for(int i = 0; i < new_array.lenght; i++){
     JSONObject obj = new_array.getJSONObject(i);
     // You can get Title from obj.getString("title") like below
     System.out.println("Title:"+obj.getString("title"));
     // You can get Notice from obj.getString("notice") like below
     System.out.println("Notice:"+obj.getString("notice"));
}

JSON Parsing turorials

http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

http://androidexample.com/JSON_Parsing_-_Android_Example/index.php?view=article_discription&aid=71&aaid=95

dsf22567
dsf22567 我是android / java的新手。 所以我不知道如何从php获取那些json数据。我的php代码位于localhost(127.0.0.1)。 请帮我
6 年多之前 回复



试试此代码</ p>

  JSONArray jsonArray = new JSONArray(responseData); 
的ArrayList&LT;字符串&GT; list = new ArrayList&lt; String&gt;();

if(jsonArray!= null){
for(int i = 0; i&lt; jsonArray.length(); i ++){
list.add(jsonArray.getJSONObject(i).getString(“title”) 的ToString());

list.add(jsonArray.getJSONObject(i).getString(“notice”)。toString());

}
}
return list
</ code> </ pre>
</ div>

展开原文

原文

Try this code

    JSONArray jsonArray = new JSONArray(responseData);
            ArrayList<String> list =new ArrayList<String>();        
            if(jsonArray != null){
                for(int i=0 ;i < jsonArray.length() ;i++){          
                list.add(jsonArray.getJSONObject(i).getString("title").toString());     
                            list.add(jsonArray.getJSONObject(i).getString("notice").toString());            
                }
            }
return list



  [// json array node 
{// json object node
“title”:“re3”,\ n“notice”:“etrf4w”
},
{
“title”:“vfdxg”,
“notice”:“fdgd”
},
{
“title”:“notice1” ,
“通知”:“详细信息”
}
]
</ code> </ pre>

解析</ p>

  ArrayList&lt  ; HashMap中&LT;字符串,字符串&GT;&GT;  list = new ArrayList&lt; HashMap&lt; String,String&gt;&gt;(); 
JSOnArray jr = new JSONArray(“json string”);
for(int i = 0; i&lt; jr.length(); i ++)
{

JSONObject jb =(JSONObject)jr.getJSONObject(i);
String title = jb.getString(“title”);
String notice = jb.getString(“notice”);

HashMap&lt; String,String&gt; map = new HashMap&lt; String,String&gt;();
map.add(“key1”,title);
map.add(“key2”,notice);
list.add(map);
}

</ code> </ pre>

现在您可以使用 list </ code>在列表视图中显示相同内容。</ p>
</ div>

展开原文

原文

[ // json array node
    { // json object node 
        "title": "re3",
        "notice": "etrf4w"
    },
    {
        "title": "vfdxg",
        "notice": "fdgd"
    },
    {
        "title": "notice1",
        "notice": "details"
    }
]

To parse

ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
JSOnArray jr = new JSONArray("json string");
for(int i=0;i<jr.length();i++)
{
    JSONObject jb = (JSONObject) jr.getJSONObject(i);
    String title = jb.getString("title");
    String notice =jb.getString("notice"); 
    HashMap<String,String> map = new HashMap<String,String>();
    map.add("key1",title);
    map.add("key2",notice);
    list.add(map);
}

Now you can use the list to display the same in a listview.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐