JSON在Android项目从URL解析 [英] json parsing from url in android project
本文介绍了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屋!
查看全文