JSON在Android项目从URL解析 [英] json parsing from url in android project

查看:214
本文介绍了JSON在Android项目从URL解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从JSON文本没有[]纯文本,在Android项目

这是我的JSON从网址{code:200,郎:EN-RU,文:比从不迟到]}

我需要得到文本文本:良药苦口]没有[]纯文本:迟到总比永远

MyClass的MAINACTIVITY

 公共类MainActivity延伸活动{
    JSONParser jsonparser =新JSONParser();
    TextView的电视;
    字符串AB;
    JSONObject的jobj = NULL;
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        电视=(的TextView)findViewById(R.id.tvResult);
        新retrievedata()执行();    }    类retrievedata扩展的AsyncTask<字符串,字符串,字符串> {        @覆盖
        保护字符串doInBackground(字符串...为arg0){
            // TODO自动生成方法存根
            jobj = jsonparser.makeHtt$p$pquest(\"https://translate.yandex.net/api/v1.5/tr.json/translate?key=YOURAPIKEY&text=Better%20late%20than%20never&lang=ru\");            //检查你的日志,JSON响应
            Log.d(登录尝试,jobj.toString());            AB = jobj.optString(文字);
            返回AB;
        }
        保护无效onPostExecute(字符串AB){            tv.setText(AB);
        }    }}

MY JSONPARSER CLASS

 公共类JSONParser {    静态InputStream为= NULL;
    静态的JSONObject jobj = NULL;
    静态JSON字符串=;
    公共JSONParser(){    }
    公众的JSONObject makeHtt prequest(字符串URL){
            DefaultHttpClient的HttpClient =新DefaultHttpClient();
            HttpPost httppost =新HttpPost(URL);
            尝试{
                HTT presponse HTT presponse = httpclient.execute(httppost);
                HttpEntity httpentity = HTT presponse.getEntity();
                是= httpentity.getContent();            }赶上(ClientProtocolException E){
                // TODO自动生成catch块
                e.printStackTrace();
            }赶上(IOException异常五){
                // TODO自动生成catch块
                e.printStackTrace();
            }            尝试{
                读者的BufferedReader =新的BufferedReader(新的InputStreamReader(是,UTF-8),8);
                StringBuilder的SB =新的StringBuilder();
                串线= NULL;
                尝试{
                    而((行= reader.readLine())!= NULL){
                        sb.append(行+\\ n);                    }
                    is.close();
                    JSON = sb.toString();
                    尝试{
                        jobj =新的JSONObject(JSON);
                    }赶上(JSONException E){
                        // TODO自动生成catch块
                        e.printStackTrace();
                    }
                }赶上(IOException异常五){                    e.printStackTrace();
                }            }赶上(UnsupportedEncodingException五){
                // TODO自动生成catch块
                e.printStackTrace();
            }        返回jobj;    }}


解决方案

替换

  AB = jobj.optString(文字);

  JSONArray TXT = jobj.getJSONArray(文字);
 AB = txt.getString(0);

how to get text from json without [" "] only text ,in android project

this is my json from url {"code":200,"lang":"en-ru","text":["Better late than never"]}

i need get text "text":["Better late than never"] without [" "] only text: Better late than never

myclass MAINACTIVITY

public class MainActivity extends Activity {
    JSONParser jsonparser = new JSONParser();
    TextView tv;
    String ab;
    JSONObject jobj = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tvResult);
        new retrievedata().execute();

    }

    class retrievedata extends AsyncTask<String,String,String>{

        @Override
        protected String doInBackground(String... arg0) {
            // TODO Auto-generated method stub
            jobj = jsonparser.makeHttpRequest("https://translate.yandex.net/api/v1.5/tr.json/translate?key=YOURAPIKEY&text=Better%20late%20than%20never&lang=ru");

            // check your log for json response
            Log.d("Login attempt", jobj.toString());

            ab = jobj.optString("text");
            return ab;
        }
        protected void onPostExecute(String ab){

            tv.setText(ab);
        }

    }

}

MY JSONPARSER CLASS

public class JSONParser {

    static InputStream is = null;
    static JSONObject jobj = null;
    static String json = "";
    public JSONParser(){

    }
    public JSONObject makeHttpRequest(String url){
            DefaultHttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            try {
                HttpResponse httpresponse = httpclient.execute(httppost);
                HttpEntity httpentity = httpresponse.getEntity();
                is = httpentity.getContent();

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                try {
                    while((line = reader.readLine())!=null){
                        sb.append(line+"\n");   

                    }
                    is.close();
                    json = sb.toString();
                    try {
                        jobj = new JSONObject(json);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (IOException e) {

                    e.printStackTrace();
                }

            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        return jobj;

    }

}

解决方案

replace

 ab = jobj.optString("text");

with

 JSONArray txt = jobj.getJSONArray("text");
 ab=txt.getString(0);

这篇关于JSON在Android项目从URL解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆