想了解android–如何从这个json对象中提取字符串数组?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于android获取json数据的相关问题,此外,我们还将为您介绍关于Androi
想了解android – 如何从这个json对象中提取字符串数组?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于android获取json数据的相关问题,此外,我们还将为您介绍关于Android Studio:如何创建一个空字符串数组?、android – nullpointerexception试图从json字符串中获取json数组或json对象、android – 在json对象里面改造后发布数组?、android – 如何从OkHttp Response对象中提取原始JSON字符串?的新知识。
本文目录一览:- android – 如何从这个json对象中提取字符串数组?(android获取json数据)
- Android Studio:如何创建一个空字符串数组?
- android – nullpointerexception试图从json字符串中获取json数组或json对象
- android – 在json对象里面改造后发布数组?
- android – 如何从OkHttp Response对象中提取原始JSON字符串?
android – 如何从这个json对象中提取字符串数组?(android获取json数据)
我正在尝试使用org.json中的类从以下json对象获取可用数字列表
{
"response":true,
"state":1,
"data":
{
"CALLERID":"81101099",
"numbers":
[
"21344111","21772917",
"28511113","29274472",
"29843999","29845591",
"30870001","30870089",
"30870090","30870091"
]
}
}
在从Web服务接收到json对象后,我的第一步是:
jsonObj = new JSONObject(response);
jsonData = jsonObj.optJSONObject("data");
现在,如何保存数字的字符串数组?
解决方法:
采用:
jsonObj = new JSONObject(response);
jsonData = jsonObj.optJSONObject("data");
JSONArray arrjson = jsonData.getJSONArray("numbers");
String[] arr = new String[arrjson.length()];
for(int i = 0; i < arrjson.length(); i++)
arr[i] = arrjson.getString(i);
Android Studio:如何创建一个空字符串数组?
我想创建一系列字符串:
String a="";
String b="";
String c="";
String d="";
String e="";
我想创建一个字符串数组来将这些字符串放入其中,我试图写这样:
String[] abcde = {"a","b","c","d","e"}
但这并不是我的愿望,因为我只想让字符串变空……
对不起,我知道这似乎只是一个简单的问题,但我是一个新的学习者,期待听到你的帮助.谢谢!
解决方法:
这是一个相当简单的任务,您只需要使用:
String[] abcde = {a, b, c, d, e}
你用“”包装你的初始变量,这指的是一个“a”,现在是一个字符为a的字符串.
我希望这可以帮助您解决您的问题,这里是一个链接,以进一步帮助字符串.
Strings Java
android – nullpointerexception试图从json字符串中获取json数组或json对象
你好,当我试图从我的jsonString获取一个对象时,我继续得到NPE.我尝试了很多东西甚至改变了我的json一次,但它只是没有用. HTTPResponse工作正常,当我记录“myObject”时,它给出了正确的对象.但是当我试图让对象进入它时,它给了我一个NPE.我测试了json,它是有效的.我也尝试检索一个数组而不是一个对象,但它也提供了一个NPE.有人能告诉我如何解决这个问题.
我做了一个简单的jsontester活动来测试我的json:
public class JSONTester extends Activity { private DefaultHttpClient createHttpClient() { HttpParams my_httpParams = new BasicHttpParams(); httpconnectionParams.setConnectionTimeout(my_httpParams,3000); SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("http",PlainSocketFactory.getSocketFactory(),80)); ThreadSafeClientConnManager multiThreadedConnectionManager = new ThreadSafeClientConnManager(my_httpParams,registry); DefaultHttpClient httpclient = new DefaultHttpClient(multiThreadedConnectionManager,my_httpParams); return httpclient; } MikeyJSON mJSON; Button mBtnGo; TextView mTxt1; TextView mTxt2; TextView mTxt3; TextView mTxt4; ProgressDialog mProgressDialog; private String lang; private int length; // 0 - 6 (length 7 to length 12) private int wordPos; // 0 - array length @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_jsontester); mTxt1 = (TextView) findViewById(R.id.txt1); mTxt1 = (TextView) findViewById(R.id.txt1); mTxt1 = (TextView) findViewById(R.id.txt1); mTxt1 = (TextView) findViewById(R.id.txt1); mBtnGo = (Button) findViewById(R.id.btnGo); } public boolean isNumeric(String str) { for(int i=0;i<str.length();i++) { if(Character.isDigit(str.charat(i))) { return true; } } return false; } public void testJSON(View view) { if(view==mBtnGo) { mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("loading"); mProgressDialog.show(); new DownloadNewWords().execute(); } } private class DownloadNewWords extends AsyncTask<Void,Void,Void> { int mStatusCode = 0; String mResultString; Exception mConnectionException; @Override protected Void doInBackground(Void... args) { String fetchUrl = "http://www.mikeywebs.nl/json/jsonexample.html"; DefaultHttpClient httpclient = createHttpClient(); HttpGet httpget = new HttpGet(fetchUrl); try { HttpResponse response = httpclient.execute(httpget); StatusLine statusLine = response.getStatusLine(); mStatusCode = statusLine.getStatusCode(); if (mStatusCode == 200){ mResultString = EntityUtils.toString(response.getEntity()); } } catch (ClientProtocolException e) { e.printstacktrace(); mConnectionException = e; } catch (IOException e) { e.printstacktrace(); mConnectionException = e; } return null; } @Override protected void onPostExecute(Void arg) { mProgressDialog.dismiss(); if (mStatusCode == 200){ mJSON = new MikeyJSON(mResultString); lang = "English"; //Integer.parseInt(langu); length = 7; //Integer.parseInt(wordl); wordPos = 0; String getWord = mJSON.getResult(lang,length,wordPos); mTxt4.setText(getWord); } else { Toast.makeText(JSONTester.this,"Gegevens konden niet worden opgehaald. Controleer uw internetverbinding en probeer het opnieuw (" +mConnectionException.toString() + ")",Toast.LENGTH_LONG).show(); mJSON = null; } } } }
我使用的jsonclass是:
public class MikeyJSON { private JSONObject myObject; private JSONArray jsonArray; int i; public MikeyJSON(String jsonString) { Log.i("JSON","jsonString: " + jsonString); try { JSONObject myObject = new JSONObject(jsonString); Log.i("JSON","myObject_Object: " + myObject.toString()); } catch (JSONException e) { // Todo Auto-generated catch block e.printstacktrace(); } } public String getResult(String lang,int length,int wordPos) { String word = "0"; //0 is Nederlands 1 is English int la = 0; if(lang.equals("English")) { la = 1; } //make String length String le = "length" + Integer.toString(length); Log.i("PARSE","get_length: " + le); //the json try { jsonArray = myObject.getJSONArray("galgjejson"); Log.i("JSON","jsonArray: " + jsonArray.toString()); } catch (JSONException e) { // Todo Auto-generated catch block e.printstacktrace(); } return word; } }
这是json:
{ "galgjejson" : [ { "Nederlands" : [ { "length7" : [ { "word" : "android" },{ "word" : "camping" },{ "word" : "koekjes" } ] } ] },{ "English" : [ { "length7" : [ { "word" : "android" },{ "word" : "koekjes" } ] } ] } ] }
这是日志:
03-18 14:06:23.178: I/JSON(6719): myObject_Object: {"Nederlands":[{"length7": [{"word":"android"},{"word":"camping"},{"word":"koekjes"}]}]} 03-18 14:06:23.178: I/PARSE(6719): get_length: length7 03-18 14:06:23.178: D/AndroidRuntime(6719): Shutting down VM 03-18 14:06:23.178: W/dalvikvm(6719): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 03-18 14:06:23.207: E/AndroidRuntime(6719): FATAL EXCEPTION: main 03-18 14:06:23.207: E/AndroidRuntime(6719): java.lang.NullPointerException 03-18 14:06:23.207: E/AndroidRuntime(6719): at me.mikey.my.games.galgjex.MikeyJSON.<init>(MikeyJSON.java:38) 03-18 14:06:23.207: E/AndroidRuntime(6719): at me.mikey.my.games.galgjex.JSONTester$DownloadNewWords.onPostExecute(JSONTester.java:128) 03-18 14:06:23.207: E/AndroidRuntime(6719): at me.mikey.my.games.galgjex.JSONTester$DownloadNewWords.onPostExecute(JSONTester.java:1) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.os.AsyncTask.finish(AsyncTask.java:631) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.os.AsyncTask.access$600(AsyncTask.java:177) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.os.Handler.dispatchMessage(Handler.java:99) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.os.Looper.loop(Looper.java:137) 03-18 14:06:23.207: E/AndroidRuntime(6719): at android.app.ActivityThread.main(ActivityThread.java:4745) 03-18 14:06:23.207: E/AndroidRuntime(6719): at java.lang.reflect.Method.invokeNative(Native Method) 03-18 14:06:23.207: E/AndroidRuntime(6719): at java.lang.reflect.Method.invoke(Method.java:511) 03-18 14:06:23.207: E/AndroidRuntime(6719): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 03-18 14:06:23.207: E/AndroidRuntime(6719): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-18 14:06:23.207: E/AndroidRuntime(6719): at dalvik.system.NativeStart.main(Native Method)
哦,第38行是:
jsonArray = myObject.getJSONArray("galgjejson");
解决方法
private JSONObject myObject; private JSONArray jsonArray; int i; public MikeyJSON(String jsonString) { Log.i("JSON","jsonString: " + jsonString); try { myObject = new JSONObject(jsonString); Log.i("JSON","myObject_Object: " + myObject.toString()); } catch (JSONException e) { // Todo Auto-generated catch block e.printstacktrace(); } }
看看那个JSON我很确定你可以使用构造函数中的字符串而不是JSONObject来创建JSONArray.
编辑的例子.
private JSONArray jsonArray; int i; public MikeyJSON(String jsonString) { try { jsonArray = new JSONArray(jsonString); } catch (JSONException e) { // Todo Auto-generated catch block e.printstacktrace(); } }
android – 在json对象里面改造后发布数组?
我正在进行改造并通过post方法向服务器发送请求我现在得到这个json的响应,看到这是我发送到服务器的帖子.
adreess class for post i m using this object
{
"years":"1855",
"months":"6",
"skills":1
}
Now i have to implement array inside object in skills how to post this
{
"years":"1",
"months":"6",
"skills":["1","2","3"],
}
如何在改造中获取对象内部的数组
我使用这样的界面
Call<AddressResponce> address(@Body Adreess adreess);
解决方法:
package com.example;
import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.Serializedname;
public class Example {
@Serializedname("years")
@Expose
private String years;
@Serializedname("months")
@Expose
private String months;
@Serializedname("skills")
@Expose
private List<String> skills = null;
public String getYears() {
return years;
}
public void setYears(String years) {
this.years = years;
}
public String getMonths() {
return months;
}
public void setMonths(String months) {
this.months = months;
}
public List<String> getSkills() {
return skills;
}
public void setSkills(List<String> skills) {
this.skills = skills;
}
}
我希望它对你有用..!
android – 如何从OkHttp Response对象中提取原始JSON字符串?
private static final String URL = "http://www.livroandroid.com.br/livro/carros/carros_{tipo}.json"; public static List<Carro> getCarros(Context context,String tipo) throws IOException { String url = URL.replace("{tipo}",tipo); OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(URL) .build(); Response response = okHttpClient.newCall(request).execute(); String json = response.body().toString(); List<Carro> carros = parserjson(context,json); return carros; }
如果我在调用getCarros方法时打印出json变量的值,我在logcat中看到以下消息:
com.squareup.okhttp.internal.http.RealResponseBody@1e11866
如何记录我收到的实际JSON字符串?
解决方法
更换
String json = response.body().toString();
同
String json = response.body().string();
response.body返回一个ResponseBody对象,该对象有自己的字符串方法:请参阅源here.
关于android – 如何从这个json对象中提取字符串数组?和android获取json数据的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android Studio:如何创建一个空字符串数组?、android – nullpointerexception试图从json字符串中获取json数组或json对象、android – 在json对象里面改造后发布数组?、android – 如何从OkHttp Response对象中提取原始JSON字符串?等相关内容,可以在本站寻找。
本文标签: