关于java–VolleyJSONException:字符0的输入结束和java输入字符型数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Androidjson错误com.google
关于java – Volley JSONException:字符0的输入结束和java输入字符型数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException、android – org.json.JSON异常:字符0的输入结束、android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束、android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- java – Volley JSONException:字符0的输入结束(java输入字符型数据)
- Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException
- android – org.json.JSON异常:字符0的输入结束
- android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束
- android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组
java – Volley JSONException:字符0的输入结束(java输入字符型数据)
我见过其他人遇到过这个问题,但没有一个帖子可以帮助我.我正在尝试将Volley用于我的REST调用库,当我尝试使用带有JSON对象的Put调用作为参数时,我收到错误:org.json.JSONException:字符输入结束0的.
这是代码:
protected void updateClientDeviceStatus(Activity activity, final int status) {
JSONObject jsonParams = new JSONObject();
try {
jsonParams.put("statusId", String.valueOf(status));
} catch (JSONException e1) {
e1.printstacktrace();
}
Log.i(LOG_TAG, "json: " + jsonParams.toString());
String url = Constants.API_URL + "client/device/" + getdeviceid();
// Request a response from the provided URL.
JsonObjectRequest request = new JsonObjectRequest
(Request.Method.PUT, url, jsonParams, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.i(LOG_TAG, "updated client status");
Log.i(LOG_TAG, "response: " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void one rrorResponse(VolleyError error) {
Log.i(LOG_TAG, "error with: " + error.getMessage());
if (error.networkResponse != null)
Log.i(LOG_TAG, "status code: " + error.networkResponse.statusCode);
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("User-Agent", getUserAgent());
params.put("X-BC-API", getKey());
return params;
}
@Override
public String getBodyContentType() {
return "application/json";
}
};
request.setRetryPolicy(new DefaultRetryPolicy(20000, 3, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
MySingleton.getInstance(activity).addToRequestQueue(request);
}
}
jsonParams日志显示:
json: {"statusId":"1"}
我还缺少另一种设置吗?看来请求无法解析JSON对象.我甚至尝试创建一个HashMap然后使用它来创建一个JSON对象,但我仍然得到相同的结果.
解决方法:
我也遇到过这个问题.
这不一定是因为服务器端存在问题 – 它只是意味着JsonObjectRequest的响应为空.
很可能服务器应该向您发送内容,而且它的响应为空是一个错误.但是,如果这是服务器的行为方式,那么要解决此问题,您需要更改JsonObjectRequest解析其响应的方式,这意味着创建JsonObjectRequest的子类,并将parseNetworkResponse覆盖到下面的示例.
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
JSONObject result = null;
if (jsonString != null && jsonString.length() > 0)
result = new JSONObject(jsonString);
return Response.success(result,
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}
请记住,使用此修复程序,并且在服务器响应为空的情况下,请求回调将返回空引用来代替JSONObject.
Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException
我在解析json数据时遇到此错误
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
我无法找到解决方案.我的json数据是:
{
"user": [
{
"email": "wijden@jerseyrest.com",
"firstName": "Wijden",
"id": "1",
"lastName": "User"
}, {
"email": "user@jerseyrest.com",
"firstName": "Sample",
"id": "2",
"lastName": "User"
}, {
"email": "ingenieur@jerseyrest.com",
"firstName": "Ingenieur",
"id": "3",
"lastName": "User"
}
]
}
这就是我做到的方式:
Type type = new Typetoken<List<WorkItem>>() { }.getType();
List<WorkItem> workitems = (List<WorkItem>) new Gson().fromJson(resultat, type);
如果你能帮助我解决问题,我将不胜感激.提前致谢
解决方法:
为了解析你的JSON,我创建了包装响应的类,即:
public class Response {
@Serializedname("user")
private List<User> userList;
//getters and setters
}
和,
public class User{
@Serializedname("id")
private int id;
@Serializedname("email")
private String email;
@Serializedname("firstName")
private String firstName;
@Serializedname("lastName")
private String lastName;
//getters and setters
}
然后,为了解析您的JSON响应,您只需要:
Gson gson = new Gson();
Response data = gson.fromJson(yourjsonString, Response.class);
然后,您可以非常轻松地访问您的数据,例如:
User user = data.getUserList.get(i);
注意:使用注释@Serializedname对于分离JSON响应中和应用程序中的字段名称很有意义,以便遵循Java命名约定…
android – org.json.JSON异常:字符0的输入结束
我正在尝试从android解析json,但我得到了这个奇怪的异常.我的json数据是
{“id”:”1″,”owner”:”1″,”name”:”gravitas”,”description”:”is a fest”,”start_time”:”0000-00-00 00:00:00″,”end_time”:”0000-00-00 00:00:00″,”venue”:”vellore”,”radius”:”10″,”lat”:”11″,”lng”:”11″,”type”:”type”,”ownername”:”dilip”,”noofpolls”:0,”noofquizes”:0,”peopleattending”:0,”result”:true}
在android我做
JSONObject j =new JSONObject(response);
Event pst = gson.fromJson(j.toString(), Event.class);
我明白了:
org.json.JSONException: end of input at character 0 of
它出什么问题了?这是代码……
RestClient client = new RestClient("http://192.168.1.3/services/events/"+eve.getName());
try {
Log.i("MY INFO", "calling boston");
client.Execute(RequestMethod.POST);
} catch (Exception e) {
e.printstacktrace();
}
String response = client.getResponse();
Log.i("MY INFO", response);
GsonBuilder gsonb = new GsonBuilder();
Gson gson = gsonb.create();
Event pst = null;
try {
JSONObject j =new JSONObject(response);
pst = gson.fromJson(j.toString(), Event.class);
} catch (JSONException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
解决方法:
哎呀!我的坏我本来应该使用GET方法.这个url没有响应POST请求所以我得到了org.json.JSON异常:字符0的输入结束.因为这个我得到了null响应,它产生了异常.
android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束
我使用Retrofit2调用了PATCH Web服务但是没有调用onResponse而且调用了onFailure尽管服务的操作在服务器端完成了
无论何时,我都试图使用fiddler来检查它的工作,我发现问题是序列化即将到来的服务响应,当使用fiddler时,我发现没有JSON响应的内容,所以Retrofit服务认为它失败了,因为没有内容,也无法序列化EMPTY内容
并给我这个错误
java.io.EOFException: End of input at line 1 column 1
提琴手原始回应
HTTP/1.1 200 OK
Server: Nginx/1.9.4
Date: Wed, 02 Mar 2016 09:55:55 GMT
Content-Type: application/json
Content-Length: 0
Connection: close
Status: 200 OK
X-Content-Type-Options: nosniff
fiddler Json的回应是空的
java中的webservice
Call<Object> call = TimeCapp.services.accept_invited_alerts(HomeActivity.api_token, alert_id);
call.enqueue(new Callback<Object>()
{
@Override
public void onResponse (Call<Object> call, Response<Object> response)
{
if (response.isSuccess()) {
String x = response.body();
}
}
@Override
public void onFailure (Call<Object>call, Throwable t)
{
String x = t.getMessage();//java.io.EOFException: End of input at line 1 column 1
}
}
我试图用String,JsonObject,emptyCalssBody替换对象….但它失败了
webservice的接口
@PATCH("alerts/{alert_id}/accept")
Call<Object> accept_invited_alerts(@Header("X-Api-Token") String
api_token, @Path("alert_id") int alert_id);
解决方法:
如果正文为空,则返回void
@PATCH("alerts/{alert_id}/accept") Call<Void> accept_invited_alerts(@Header("X-Api-Token") String api_token, @Path("alert_id") int alert_id);
对于使用Rx java进行改造,你可以使用这样的东西
@PATCH("alerts/{alert_id}/accept") Observable<Response<Void>> accept_invited_alerts(@Header("X-Api-Token") String api_token, @Path("alert_id") int alert_id);
android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组
我正在解析这个url,我有一个例外,不知道如何跳过它……我只需要获得100个最受欢迎的应用程序的名称.有一个关键的“im:name”,里面有一个键“lebel”,但是我认为它是无效的JsonArray,所以我需要找到通过键“im:name”获取名字的方法…有smb任何想法我该如何解决这个问题?
这是我的AsyncTask.class
public class AsyncTaskParseJson extends AsyncTask<String, String, String> {
String jsonStringUrl = "https://itunes.apple.com/br/RSS/topfreeapplications/limit=100/json";
JSONArray dataJsonArr = null;
@Override
protected void onPreExecute() {}
@Override
protected String doInBackground(String... arg0) {
try {
// instantiate our json parser
JsonParser jParser = new JsonParser();
// get json string from url
JSONObject json = jParser.getJSONFromUrl(jsonStringUrl);
// get the array of users
//HERE I NEED TO CHANGE SOMETHING
dataJsonArr = json.getJSONArray("Feed"); // probably wrong
// loop through all users
for (int i = 0; i < dataJsonArr.length(); i++) {
JSONObject c = dataJsonArr.getJSONObject(i);
// Storing each json item in variable
String name = c.getString("im:name");//probably wrong
}
} catch (JSONException e) {
e.printstacktrace();
}
return null;
}
}
这是日志
09-10 20:04:03.013 18211-18241/com.yuretsrodik.top100apps E/JsonParser.java﹕ Error parsing data org.json.JSONException: Unterminated array at character 115 of {"Feed":{"author":{"name":{"label":"iTunes Store"}, "uri":{"label":"http://www.apple.com/br/itunes/"}}, "entry":[n{"im:name":{"label":"Messenger"}, "im:image":[n{"label":"http://a474.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.53x53-50.png", "attributes":{"height":"53"}}, n{"label":"http://a990.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.75x75-65.png", "attributes":{"height":"75"}}, n{"label":"http://a1675.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.100x100-75.png", "attributes":{"height":"100"}}], "summary":{"label":"lcance instantaneamente as pessoas na sua vida, gratuitamente. O Messenger é como mensagens de texto, mas você não precisa pagar por cada mensagem (funciona com o seu plano de dados). \n\nNão é só para amigos no Facebook: envie mensagens para as pessoas na sua agenda de contatos e basta inserir um número de telefone para adicionar um novo contato.\n\nBate-papos em grupo: crie grupos para as pessoas a quem você mais envia mensagens. Dê um nome a eles, defina fotos para o grupo e os mantenha em um só lugar.\n\nFotos e vÃdeos: grave vÃdeos e tire selfies ou outras fotos diretamente do aplicativo e envie-os com um toque.\n\nLigações gratuitas: fale por quanto tempo quiser, mesmo com pessoas em outros paÃses. (Ligações são gratuitas somente através do Wi-Fi. Do contrário, cobranças de dados padrão são aplicáveis).\n\nMais formas de enviar mensagens: \nDê vida à s suas conversas com as figurinhas. \nVeja uma prévia das suas fotos e vÃdeos no rolo da câmera sem sair da conversa, e escolha as melhores para enviar.\nGrave mensagens de voz quando tiver mais para dizer\n\nRecursos adicionais:\nSaiba quando as pessoas viram suas mensagens.\nEncaminhe mensagens ou fotos para as pessoas que não estavam na conversa.\nProcure pessoas e grupos para entrar em contato com eles rapidamente.\nAtive a localização para que as pessoas saibam que você está nas imediações.\nVeja quem está disponÃvel no Messenger e quem está on-line no Facebook. \nDesative as notificações quando você estiver trabalhando, dormindo ou se precisar dar um tempo.\nFique conectado para nunca perder uma mensagem."}, "im:price":{"label":"Grátis", "attributes":{"amount":"0.00000", "currency":"USD"}}, "im:contentType":{"attributes":{"term":"Application", "label":"Aplicativo"}}, "rights":{"label":"© Facebook, Inc."}, "title":{"label":"Messenger - Facebook, Inc."}, "link":{"attributes":{"rel":"alternate", "type":"text/html", "href":"https://itunes.apple.com/br/app/messenger/id454638411?mt=8&uo=2"}}, "id":{"label":"https://itunes.apple.com/br/app/messenger/id454638411?mt=8&uo=2", "attributes":{"im:id":"454638411", "im:bundleId":"com.facebook.Messenger"}}, "im:artist":{"label":"Facebook, Inc.", "attributes":{"href":"https://itunes.apple.com/br/artist/facebook-inc./id284882218?mt=8&uo=2"}}, "category":{"attributes":{"im:id":"6005", "term":"Social Networking", "scheme":"https://itunes.apple.com/br/genre/ios-redes-sociais/id6005?mt=8&uo=2", "label":"Redes sociais"}}, "im:releaseDate":{"label":"2011-10-19T15:39:30-07:00", "attributes":{"label":"19/10/2011"}}}, n{"im:name":{"label":"WhatsApp Messenger"}, "im:image":[n{"label":"http://a1554.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.53x53-50.png", "attributes":{"height":"53"}}, n{"label":"http://a422.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.75x75-65.png", "attributes":{"height":"75"}}, n{"label":"http://a1251.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.100x100-75.png", "attributes":{"height":"100"}}], "summary":{"label":"O WhatsApp Messenger é um mensageiro para smartphone
09-10 20:04:03.013 18211-18241/com.yuretsrodik.top100apps W/dalvikvm﹕ threadid=11: thread exiting with uncaught exception (group=0x42044e48)
09-10 20:04:03.023 18211-18241/com.yuretsrodik.top100apps E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
Process: com.yuretsrodik.top100apps, PID: 18211
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at com.yuretsrodik.top100apps.AsyncTaskParseJson.doInBackground(AsyncTaskParseJson.java:32)
at com.yuretsrodik.top100apps.AsyncTaskParseJson.doInBackground(AsyncTaskParseJson.java:10)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
将非常非常感谢帮助!!因为我真的堆叠(
解决方法:
首先,您进行调用将结果转换为名为json的字符串.
然后你必须将字符串转换为Json对象
String json = null;
JSONObject jsonObj = null; JSONObject FeedsObject = null;
json = jParser.getJSONFromUrl(jsonStringUrl);
if (json != null) {
try {
jsonObj = new JSONObject(json);
FeedObject = jsonObj.getJSONObject("Feed");
为了更好地理解,请访问http://json.parser.online.fr/beta/并在那里粘贴您的json数据.
在右边你有一个设置按钮—>显示类型
您可以找到对象,字符串和数组
见下图.你试图获得一个不是数组的对象
关于java – Volley JSONException:字符0的输入结束和java输入字符型数据的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Android json错误com.google.gson.JsonSyntaxException:java.lang.IllegalStateException、android – org.json.JSON异常:字符0的输入结束、android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束、android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组的相关信息,请在本站寻找。
本文标签: