我正在开发一个Android应用程序.在我的应用程序中,我必须将字符串转换为Json对象,然后解析值.我在stackoverflow中检查了一个解决方案,并在此处找到了类似的问题链接
解决方案是这样的
`{"phonetype":"N95","cat":"WP"}`
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
Run Code Online (Sandbox Code Playgroud)
我在代码中使用相同的方法.我的字符串是
{"ApiInfo":{"description":"userDetails","status":"success"},"userDetails":{"Name":"somename","userName":"value"},"pendingPushDetails":[]}
string mystring= mystring.replace("\"", "\\\"");
Run Code Online (Sandbox Code Playgroud)
更换后我得到了结果
{\"ApiInfo\":{\"description\":\"userDetails\",\"status\":\"success\"},\"userDetails\":{\"Name\":\"Sarath Babu\",\"userName\":\"sarath.babu.sarath babu\",\"Token\":\"ZIhvXsZlKCNL6Xj9OPIOOz3FlGta9g\",\"userId\":\"118\"},\"pendingPushDetails\":[]}
Run Code Online (Sandbox Code Playgroud)
当我执行 JSONObject jsonObj = new JSONObject(mybizData);
我得到以下json异常
org.json.JSONException: Expected literal value at character 1 of
Run Code Online (Sandbox Code Playgroud)
请帮我解决我的问题.
我知道这里有几个问题都有相同的主题和错误,但没有一个表明我的问题相同,所以我决定在这里发布我的问题,希望有人能帮助我指出原因.所以我正在尝试在我的应用程序中实现登录功能,这里是代码:
if (tag.equalsIgnoreCase(login_tag)){
// check for login response
try {
if (json.getString(KEY_SUCCESS) != null) {
String res = json.getString(KEY_SUCCESS);
if(Integer.parseInt(res) == 1){
// user successfully logged in
// Store user details in SQLite Database
DatabaseHandler db = new DatabaseHandler(mContext);
JSONObject json_user = json.getJSONObject("user");
// Clear all previous data in database
logoutUser(mContext);
Toast.makeText(mContext, json.toString(3), Toast.LENGTH_LONG).show();
db.addUser(json_user.getString(KEY_EMAIL), json_user.getString(KEY_NAME), json.getString(KEY_UID), json.getString(KEY_AVA), json_user.getString(KEY_BDAY), json_user.getString(KEY_COUNTRY), json_user.getString(KEY_PREF), json_user.getString(KEY_SPEND));
// Launch Dashboard Screen
Intent dashboard = new Intent(mContext, DashboardActivity.class);
// Close all views before launching Dashboard
dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); …Run Code Online (Sandbox Code Playgroud) 拳头:解释org.json.simple.JSONObject和org.json.JSONObject之间的区别?
第二:我有一个带org.json.JSONObject和org.json.JSONException的代码.当我在eclipse(JUNO)中编辑代码时,它解析了JSONException的类型并导入了包org.json.JSONException,但是当我在命令行中使用maven运行项目时,我遇到了问题(JSONException无法解析为某种类型).我尝试通过向pom.xml添加依赖项来解决此问题,如下所示:
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
Run Code Online (Sandbox Code Playgroud)
但我不确定它是否是正确的.我甚至下载了组织的jar.java-json.jar并将其添加到web deployement程序集但仍然是相同的错误.有人可以帮忙吗?
我试图从资产文件夹中读取JSON文件.但我得到以下异常
org.json.JSONException: Expected literal value at character 550
我搜索了很多东西,但没有找到任何相关的东西.这是我的JSON文件.
我发现550上的JSON对象是"names": ["Santosh","Sandip","Arvind"],.我试图解决它,但不知道我的代码中发生了什么.
这是我的代码.
我也调试我的代码,但是当控制继续时,JSONObject jsonObject = new JSONObject(text);它抛出异常并进入第一个catch块.
请给我任何参考或提示来解决这个问题.
任何帮助赞赏.
我已将此 json 转换为字符串以保存在本地数据库中
{
"type": "file",
"id": "b665ff0b-5f7b-4991-ae88-ac5054880223",
"link": {
"href": "https://s3-eu-west-com/87e9edff-e7bd-49ea-aa7a-8948cac29bc1/b665ff0b-5f7b-4991-ae88-ac5054880223.jpg"
},
"file_name": "sony 431.jpg",
"mime_type": "image/jpeg",
"file_size": 66727,
"public": true,
"meta": {
"dimensions": {
"width": 1500,
"height": 1500
},
"timestamps": {
"created_at": "2018-01-22T11:07:35.527Z"
}
},
"links": {
"current": "https://api.e-com.com/v2/files/b665ff0b-5f7b-4991-ae88-ac5054880223"
}
}
Run Code Online (Sandbox Code Playgroud)
当我通过转换为 JSON 来使用该字符串时,我收到错误消息
“无法识别的标记 'com':期待('true'、'false' 或 'null')”
我该如何解决该错误?
这就是我将这个 json 转换为字符串的方式:
staticFile1.setFile(file.toString());
Run Code Online (Sandbox Code Playgroud)
和字符串到json:
File file1 = new ObjectMapper().readValue(file, File.class);
Run Code Online (Sandbox Code Playgroud) 我正在调用 Web 服务以获取 JSON 字符串响应,它包含不在原始字符串中的反斜杠。下面是我请求一个 JSON 字符串对象的代码,它是: {"name":"Name","id":1}
protected String doInBackground(String... uri)
{
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
responseString = out.toString();
} else{
//Closes the connection.
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
//TODO Handle problems..
} catch (IOException e) {
//TODO Handle problems..
}
return responseString;
}
Run Code Online (Sandbox Code Playgroud)
在执行后,我只是尝试将此响应字符串解析为 JSONObject。代码如下:
protected …Run Code Online (Sandbox Code Playgroud) 我正在构建一个简单的 Maven 项目。我使用构建路径添加json为第三方库,并将其添加到web-inf库中。最后,我在pom.xml. 然而,经过上述所有努力,我仍然遇到这个异常。任何信息和建议表示赞赏!
下面是例外情况
SEVERE: Servlet.service() for servlet [sfmserver] in context with path [/mysfmovies] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.json.JSONException
Run Code Online (Sandbox Code Playgroud)
下面是我的pom.xml的内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mysfmovies</groupId>
<artifactId>mysfmovies</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mysfmovies Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
<scope>provided</scope>
</dependency>
<dependency> …Run Code Online (Sandbox Code Playgroud) 我想实现OWASP提到的“ JSON Sanitizer”验证。我的理解是,这需要在两个地方完成:
从客户端或其他系统接收的JSON数据(在请求中)-需要在服务器端进行清理,然后再进行处理
JSON数据(作为响应)要发送到客户端-在发送到客户端之前,需要在服务器端清除此数据
仅在该JSON数据上的JSON清理库中调用一个清理方法就足够了吗?
这将执行所有消毒处理还是在这方面进行任何其他验证?
我的 Flutter 应用程序中有以下代码:
response = await http.post(uri, body: target.parameters, headers: headers);
return SeatsMapDecoder.getFromJson(json.decode(response.body));
Run Code Online (Sandbox Code Playgroud)
结束这个请求的响应是这样的:
{"reservations":{"reserved":[439,442,443,22,23,24,25],"paid":[]},"data":{"id":1,"start_date":"25.10.2019","start_time":"20:00","price":"4.50","auditorium":{"id":1,"name":"Velika Sala","sections":[{"id":1,"auditorium_id":1,"name":"Parter I - XI","rows":[[{"id":1,"row":1,"number":1},{"id":2,"row":1,"number":2},{"id":3,"row":1,"number":3},{"id":4,"row":1,"number":4},{"id":5,"row":1,"number":5},{"id":6,"row":1,"number":6},{"id":7,"row":1,"number":7},{"id":8,"row":1,"number":8},{"id":9,"row":1,"number":9},{"id":10,"row":1,"number":10},{"id":11,"row":1,"number":11},{"id":12,"row":1,"number":12},{"id":13,"row":1,"number":13},{"id":14,"row":1,"number":14},{"id":15,"row":1,"number":15},{"id":16,"row":1,"number":16},{"id":17,"row":1,"number":17}],[{"id":18,"row":2,"number":1},{"id":19,"row":2,"number":2},{"id":20,"row":2,"number":3},{"id":21,"row":2,"number":4},{"id":22,"row":2,"number":5},{"id":23,"row":2,"number":6},{"id":24,"row":2,"number":7},{"id":25,"row":2,"number":8},{"id":26,"row":2,"number":9},{"id":27,"row":2,"number":10},{"id":28,"row":2,"number":11},{"id":29,"row":2,"number":12},{"id":30,"row":2,"number":13},{"id":31,"row":2,"number":14},{"id":32,"row":2,"number":15},{"id":33,"row":2,"number":16}],[{"id":34,"row":3,"number":1},{"id":35,"row":3,"number":2},{"id":36,"row":3,"number":3},{"id":37,"row":3,"number":4},{"id":38,"row":3,"number":5},{"id":39,"row":3,"number":6},{"id":40,"row":3,"number":7},{"id":41,"row":3,"number":8},{"id":42,"row":3,"number":9},{"id":43,"row":3,"number":10},{"id":44,"row":3,"number":11},{"id":45,"row":3,"number":12},{"id":46,"row":3,"number":13},{"id":47,"row":3,"number":14},{"id":48,"row":3,"number":15},{"id":49,"row":3,"number":16},{"id":50,"row":3,"number":17}],[{"id":51,"row":4,"number":1},{"id":52,"row":4,"number":2},{"id":53,"row":4,"number":3},{"id":54,"row":4,"number":4},{"id":55,"row":4,"number":5},{"id":56,"row":4,"number":6},{"id":57,"row":4,"number":7},{"id":58,"row":4,"number":8},{"id":59,"row":4,"number":9},{"id":60,"row":4,"number":10},{"id":61,"row":4,"number":11},{"id":62,"row":4,"number":12},{"id":63,"row":4,"number":13},{"id":64,"row":4,"number":14},{"id":65,"row":4,"number":15},{"id":66,"row":4,"number":16}],[{"id":67,"row":5,"number":1},{"id":68,"row":5,"number":2},{"id":69,"row":5,"number":3},{"id":70,"row":5,"number":4},{"id":71,"row":5,"number":5},{"id":72,"row":5,"number":6},{"id":73,"row":5,"number":7},{"id":74,"row":5,"number":8},{"id":75,"row":5,"number":9},{"id":76,"row":5,"number":10},{"id":77,"row":5,"number":11},{"id":78,"row":5,"number":12},{"id":79,"row":5,"number":13},{"id":80,"row":5,"number":14},{"id":81,"row":5,"number":15},{"id":82,"row":5,"number":16},{"id":83,"row":5,"number":17}],[{"id":84,"row":6,"number":1},{"id":85,"row":6,"number":2},{"id":86,"row":6,"number":3},{"id":87,"row":6,"number":4},{"id":88,"row":6,"number":5},{"id":89,"row":6,"number":6},{"id":90,"row":6,"number":7},{"id":91,"row":6,"number":8},{"id":92,"row":6,"number":9},{"id":93,"row":6,"number":10},{"id":94,"row":6,"number":11},{"id":95,"row":6,"number":12},{"id":96,"row":6,"number":13},{"id":97,"row":6,"number":14},{"id":98,"row":6,"number":15},{"id":99,"row":6,"number":16}],[{"id":100,"row":7,"number":1},{"id":101,"row":7,"number":2},{"id":102,"row":7,"number":3},{"id":103,"row":7,"number":4},{"id":104,"row":7,"number":5},{"id":105,"row":7,"number":6},{"id":106,"row":7,"number":7},{"id":107,"row":7,"number":8},{"id":108,"row":7,"number":9},{"id":109,"row":7,"number":10},{"id":110,"row":7,"number":11},{"id":111,"row":7,"number":12},{"id":112,"row":7,"number":13},{"id":113,"row":7,"number":14},{"id":114,"row":7,"number":15},{"id":115,"row":7,"number":16},{"id":116,"row":7,"number":17}],[{"id":117,"row":8,"number":1},{"id":118,"row":8,"number":2},{"id":119,"row":8,"number":3},{"id":120,"row":8,"number":4},{"id":121,"row":8,"number":5},{"id":122,"row":8,"number":6},{"id":123,"row":8,"number":7},{"id":124,"row":8,"number":8},{"id":125,"row":8,"number":9},{"id":126,"row":8,"number":10},{"id":127,"row":8,"number":11},{"id":128,"row":8,"number":12},{"id":129,"row":8,"number":13},{"id":130,"row":8,"number":14},{"id":131,"row":8,"number":15},{"id":132,"row":8,"number":16}],[{"id":133,"row":9,"number":1},{"id":134,"row":9,"number":2},{"id":135,"row":9,"number":3},{"id":136,"row":9,"number":4},{"id":137,"row":9,"number":5},{"id":138,"row":9,"number":6},{"id":139,"row":9,"number":7},{"id":140,"row":9,"number":8},{"id":141,"row":9,"number":9},{"id":142,"row":9,"number":10},{"id":143,"row":9,"number":11},{"id":144,"row":9,"number":12},{"id":145,"row":9,"number":13},{"id":146,"row":9,"number":14},{"id":147,"row":9,"number":15},{"id":148,"row":9,"number":16},{"id":149,"row":9,"number":17}],[{"id":150,"row":10,"number":1},{"id":151,"row":10,"number":2},{"id":152,"row":10,"number":3},{"id":153,"row":10,"number":4},{"id":154,"row":10,"number":5},{"id":155,"row":10,"number":6},{"id":156,"row":10,"number":7},{"id":157,"row":10,"number":8},{"id":158,"row":10,"number":9},{"id":159,"row":10,"number":10},{"id":160,"row":10,"number":11},{"id":161,"row":10,"number":12},{"id":162,"row":10,"number":13},{"id":163,"row":10,"number":14},{"id":164,"row":10,"number":15},{"id":165,"row":10,"number":16}],[{"id":166,"row":11,"number":1},{"id":167,"row":11,"number":2},{"id":168,"row":11,"number":3},{"id":169,"row":11,"number":4},{"id":170,"row":11,"number":5},{"id":171,"row":11,"number":6},{"id":172,"row":11,"number":7},{"id":173,"row":11,"number":8},{"id":174,"row":11,"number":9},{"id":175,"row":11,"number":10},{"id":176,"row":11,"number":11},{"id":177,"row":11,"number":12},{"id":178,"row":11,"number":13},{"id":179,"row":11,"number":14},{"id":180,"row":11,"number":15},{"id":181,"row":11,"number":16},{"id":182,"row":11,"number":17}]]},{"id":2,"auditorium_id":1,"name":"Parter XII - XXIII","rows":[[{"id":183,"row":12,"number":1},{"id":184,"row":12,"number":2},{"id":185,"row":12,"number":3},{"id":186,"row":12,"number":4},{"id":187,"row":12,"number":5},{"id":188,"row":12,"number":6},{"id":189,"row":12,"number":7},{"id":190,"row":12,"number":8},{"id":191,"row":12,"number":9},{"id":192,"row":12,"number":10},{"id":193,"row":12,"number":11},{"id":194,"row":12,"number":12},{"id":195,"row":12,"number":13},{"id":196,"row":12,"number":14},{"id":197,"row":12,"number":15},{"id":198,"row":12,"number":16},{"id":199,"row":12,"number":17}],[{"id":200,"row":13,"number":1},{"id":201,"row":13,"number":2},{"id":202,"row":13,"number":3},{"id":203,"row":13,"number":4},{"id":204,"row":13,"number":5},{"id":205,"row":13,"number":6},{"id":206,"row":13,"number":7},{"id":207,"row":13,"number":8},{"id":208,"row":13,"number":9},{"id":209,"row":13,"number":10},{"id":210,"row":13,"number":11},{"id":211,"row":13,"number":12},{"id":212,"row":13,"number":13},{"id":213,"row":13,"number":14},{"id":214,"row":13,"number":15},{"id":215,"row":13,"number":16}],[{"id":216,"row":14,"number":1},{"id":217,"row":14,"number":2},{"id":218,"row":14,"number":3},{"id":219,"row":14,"number":4},{"id":220,"row":14,"number":5},{"id":221,"row":14,"number":6},{"id":222,"row":14,"number":7},{"id":223,"row":14,"number":8},{"id":224,"row":14,"number":9},{"id":225,"row":14,"number":10},{"id":226,"row":14,"number":11},{"id":227,"row":14,"number":12},{"id":228,"row":14,"number":13},{"id":229,"row":14,"number":14},{"id":230,"row":14,"number":15},{"id":231,"row":14,"number":16},{"id":232,"row":14,"number":17}],[{"id":233,"row":15,"number":1},{"id":234,"row":15,"number":2},{"id":235,"row":15,"number":3},{"id":236,"row":15,"number":4},{"id":237,"row":15,"number":5},{"id":238,"row":15,"number":6},{"id":239,"row":15,"number":7},{"id":240,"row":15,"number":8},{"id":241,"row":15,"number":9},{"id":242,"row":15,"number":10},{"id":243,"row":15,"number":11},{"id":244,"row":15,"number":12},{"id":245,"row":15,"number":13},{"id":246,"row":15,"number":14},{"id":247,"row":15,"number":15},{"id":248,"row":15,"number":16}],[{"id":249,"row":16,"number":1},{"id":250,"row":16,"number":2},{"id":251,"row":16,"number":3},{"id":252,"row":16,"number":4},{"id":253,"row":16,"number":5},{"id":254,"row":16,"number":6},{"id":255,"row":16,"number":7},{"id":256,"row":16,"number":8},{"id":257,"row":16,"number":9},{"id":258,"row":16,"number":10},{"id":259,"row":16,"number":11},{"id":260,"row":16,"number":12},{"id":261,"row":16,"number":13},{"id":262,"row":16,"number":14},{"id":263,"row":16,"number":15},{"id":264,"row":16,"number":16},{"id":265,"row":16,"number":17}],[{"id":266,"row":17,"number":1},{"id":267,"row":17,"number":2},{"id":268,"row":17,"number":3},{"id":269,"row":17,"number":4},{"id":270,"row":17,"number":5},{"id":271,"row":17,"number":6},{"id":272,"row":17,"number":7},{"id":273,"row":17,"number":8},{"id":274,"row":17,"number":9},{"id":275,"row":17,"number":10},{"id":276,"row":17,"number":11},{"id":277,"row":17,"number":12},{"id":278,"row":17,"number":13},{"id":279,"row":17,"number":14},{"id":280,"row":17,"number":15},{"id":281,"row":17,"number":16}],[{"id":282,"row":18,"number":1},{"id":283,"row":18,"number":2},{"id":284,"row":18,"number":3},{"id":285,"row":18,"number":4},{"id":286,"row":18,"number":5},{"id":287,"row":18,"number":6},{"id":288,"row":18,"number":7},{"id":289,"row":18,"number":8},{"id":290,"row":18,"number":9},{"id":291,"row":18,"number":10},{"id":292,"row":18,"number":11},{"id":293,"row":18,"number":12},{"id":294,"row":18,"number":13},{"id":295,"row":18,"number":14},{"id":296,"row":18,"number":15},{"id":297,"row":18,"number":16},{"id":298,"row":18,"number":17}],[{"id":299,"row":19,"number":1},{"id":300,"row":19,"number":2},{"id":301,"row":19,"number":3},{"id":302,"row":19,"number":4},{"id":303,"row":19,"number":5},{"id":304,"row":19,"number":6},{"id":305,"row":19,"number":7},{"id":306,"row":19,"number":8},{"id":307,"row":19,"number":9},{"id":308,"row":19,"number":10},{"id":309,"row":19,"number":11},{"id":310,"row":19,"number":12},{"id":311,"row":19,"number":13},{"id":312,"row":19,"number":14},{"id":313,"row":19,"number":15},{"id":314,"row":19,"number":16}],[{"id":315,"row":20,"number":1},{"id":316,"row":20,"number":2},{"id":317,"row":20,"number":3},{"id":318,"row":20,"number":4},{"id":319,"row":20,"number":5},{"id":320,"row":20,"number":6},{"id":321,"row":20,"number":7},{"id":322,"row":20,"number":8},{"id":323,"row":20,"number":9},{"id":324,"row":20,"number":10},{"id":325,"row":20,"number":11},{"id":326,"row":20,"number":12},{"id":327,"row":20,"number":13},{"id":328,"row":20,"number":14},{"id":329,"row":20,"number":15},{"id":330,"row":20,"number":16},{"id":331,"row":20,"number":17}],[{"id":332,"row":21,"number":1},{"id":333,"row":21,"number":2},{"id":334,"row":21,"number":3},{"id":335,"row":21,"number":4},{"id":336,"row":21,"number":5},{"id":337,"row":21,"number":6},{"id":338,"row":21,"number":7},{"id":339,"row":21,"number":8},{"id":340,"row":21,"number":9},{"id":341,"row":21,"number":10},{"id":342,"row":21,"number":11},{"id":343,"row":21,"number":12},{"id":344,"row":21,"number":13},{"id":345,"row":21,"number":14},{"id":346,"row":21,"number":15},{"id":347,"row":21,"number":16}],[{"id":348,"row":22,"number":1},{"id":349,"row":22,"number":2},{"id":350,"row":22,"number":3},{"id":351,"row":22,"number":4},{"id":352,"row":22,"number":5},{"id":353,"row":22,"number":6},{"id":354,"row":22,"number":7},{"id":355,"row":22,"number":8},{"id":356,"row":22,"number":9},{"id":357,"row":22,"number":10},{"id":358,"row":22,"number":11},{"id":359,"row":22,"number":12},{"id":360,"row":22,"number":13},{"id":361,"row":22,"number":14},{"id":362,"row":22,"number":15},{"id":363,"row":22,"number":16},{"id":364,"row":22,"number":17}],[{"id":365,"row":23,"number":1},{"id":366,"row":23,"number":2},{"id":367,"row":23,"number":3},{"id":368,"row":23,"number":4},{"id":369,"row":23,"number":5},{"id":370,"row":23,"number":6},{"id":371,"row":23,"number":7},{"id":372,"row":23,"number":8},{"id":373,"row":23,"number":9},{"id":374,"row":23,"number":10},{"id":375,"row":23,"number":11},{"id":376,"row":23,"number":12},{"id":377,"row":23,"number":13},{"id":378,"row":23,"number":14},{"id":379,"row":23,"number":15},{"id":380,"row":23,"number":16}]]},{"id":3,"auditorium_id":1,"name":"Balkon","rows":[[{"id":381,"row":1,"number":1},{"id":382,"row":1,"number":2},{"id":383,"row":1,"number":3},{"id":384,"row":1,"number":4},{"id":385,"row":1,"number":5},{"id":386,"row":1,"number":6},{"id":387,"row":1,"number":7},{"id":388,"row":1,"number":8},{"id":389,"row":1,"number":9},{"id":390,"row":1,"number":10},{"id":391,"row":1,"number":11}],[{"id":392,"row":2,"number":1},{"id":393,"row":2,"number":2},{"id":394,"row":2,"number":3},{"id":395,"row":2,"number":4},{"id":396,"row":2,"number":5},{"id":397,"row":2,"number":6},{"id":398,"row":2,"number":7},{"id":399,"row":2,"number":8},{"id":400,"row":2,"number":9},{"id":401,"row":2,"number":10}],[{"id":402,"row":3,"number":1},{"id":403,"row":3,"number":2},{"id":404,"row":3,"number":3},{"id":405,"row":3,"number":4},{"id":406,"row":3,"number":5},{"id":407,"row":3,"number":6},{"id":408,"row":3,"number":7},{"id":409,"row":3,"number":8},{"id":410,"row":3,"number":9},{"id":411,"row":3,"number":10},{"id":412,"row":3,"number":11}],[{"id":413,"row":4,"number":1},{"id":414,"row":4,"number":2},{"id":415,"row":4,"number":3},{"id":416,"row":4,"number":4},{"id":417,"row":4,"number":5},{"id":418,"row":4,"number":6},{"id":419,"row":4,"number":7},{"id":420,"row":4,"number":8},{"id":421,"row":4,"number":9},{"id":422,"row":4,"number":10}],[{"id":423,"row":5,"number":1},{"id":424,"row":5,"number":2},{"id":425,"row":5,"number":3},{"id":426,"row":5,"number":4},{"id":427,"row":5,"number":5},{"id":428,"row":5,"number":6},{"id":429,"row":5,"number":7},{"id":430,"row":5,"number":8},{"id":431,"row":5,"number":9},{"id":432,"row":5,"number":10}],[{"id":433,"row":6,"number":1},{"id":434,"row":6,"number":2},{"id":435,"row":6,"number":3},{"id":436,"row":6,"number":4},{"id":437,"row":6,"number":5},{"id":438,"row":6,"number":6}],[{"id":439,"row":7,"number":1},{"id":440,"row":7,"number":2},{"id":441,"row":7,"number":3},{"id":442,"row":7,"number":4},{"id":443,"row":7,"number":5},{"id":444,"row":7,"number":6}]]}],"seats_map":"main"}}}
Run Code Online (Sandbox Code Playgroud)
在服务器端我只这样做(Laravel 6):
$seatsMap = $service->getSeatsMap();
return response()->json($seatsMap);
Run Code Online (Sandbox Code Playgroud)
然而有时在处理应用程序时,我会遇到 json 格式异常。
FormatException: Unexpected end of input (at character 14076)...,"row":7,"number":5},{"id":444,"row":7,"number":6}]]}],"seats_m
Run Code Online (Sandbox Code Playgroud)
调试显示有时最后一个括号}丢失response.body。主体的长度有时是14076字节,有时是14075字节。就像 flutter 的 http 库忘记读取最后一个字节一样。
我也尝试在服务器端返回这个:
return response()->json($data, 200, [
"Content-Type" => "application/json; charset=utf-8"
]);
Run Code Online (Sandbox Code Playgroud)
但有时仍然会发生最后一个}丢失的情况response.body。
导致此错误的原因可能是什么?我怀疑它是服务器端,因为我使用 Laravel 来 json 编码关联数组。
编辑
看起来这只发生在模拟器上,在我的华为 Mate 10 PRO 上,我无法重现这个错误......
编辑2
一旦我将后端代码推送到服务器,现在我正在从服务器检索数据,这种情况就会在模拟器上停止发生
我正在使用这个使用这个JSON对象的应用程序遇到一些麻烦:http://api.worldweatheronline.com/premium/v1/marine.ashx? q = -34.8799074,174.7565664&key = 3477e975c4d9a8a0eaac2b2c818f4& format = json&tide = YES
有些日子它工作正常,从JSON对象中获取数据没有问题,有些日子我得到这种错误:JSONException:索引5超出范围[0..5).
12-04 11:12:30.328 1916-1931/android_kaizen.com.drawerskippermate E/FetchWeatherTask? Index 5 out of range [0..5)
org.json.JSONException: Index 5 out of range [0..5)
at org.json.JSONArray.get(JSONArray.java:263)
at org.json.JSONArray.getJSONObject(JSONArray.java:480)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.getWeatherDataFromJson(MainActivity.java:579)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.doInBackground(MainActivity.java:754)
at android_kaizen.com.drawerskippermate.MainActivity$FetchWeatherTask.doInBackground(MainActivity.java:318)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:864)
Run Code Online (Sandbox Code Playgroud)
甚至没有改变一行代码!! 奇怪的是,可以在Web浏览器中看到JSON对象.
有没有人遇到类似的情况,可以解释为什么会发生?
谢谢!
编辑:这是我的代码:
private DayForecast[] getWeatherDataFromJson(String forecastJsonStr) throws JSONException {
final String JSON_DATA = "data";
final String JSON_WEATHER = "weather";
final String JSON_MAX …Run Code Online (Sandbox Code Playgroud)