java jsonobject 转换_java – 将JSONObject转换为JSONArray

java jsonobject 转换_java – 将JSONObject转换为JSONArray我目前正在学习一些使用JAVA的android编程.我的老师分享了这段代码,它将使用API​​,获取其JSON文件,并将其转换为JSONArray文件.然后,他将遍历该JSONArray并将它们放入ArrayList,然后将它们显示在一个活动上.问题是我正在使用的API会返回一个JSONObject文件,而我不知道如何正确地将其转换为JSONArray.importandroid.util.Lo…

大家好,又见面了,我是你们的朋友全栈君。

我目前正在学习一些使用JAVA的

android编程.我的老师分享了这段代码,它将使用API​​,获取其

JSON文件,并将其转换为

JSONArray文件.然后,他将遍历该JSONArray并将它们放入ArrayList,然后将它们显示在一个活动上.

问题是我正在使用的API会返回一个JSONObject文件,而我不知道如何正确地将其转换为JSONArray.

import android.util.Log;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.HashMap;

public class JSONParser {

String charset = “UTF-8”;

HttpURLConnection conn;

DataOutputStream wr;

StringBuilder result;

URL urlObj;

JSONArray jObj = null;

StringBuilder sbParams;

String paramsString;

public JSONArray makeHttpRequest(String url, String method) {

sbParams = new StringBuilder();

if(method.equals(“GET”)){

// request method is GET

if (sbParams.length() != 0) {

url += “?” + sbParams.toString();

}

try {

urlObj = new URL(url);

conn = (HttpURLConnection) urlObj.openConnection();

conn.setDoOutput(false);

conn.setRequestMethod(“GET”);

conn.setRequestProperty(“AccountKey”, “pVU56+0hI26DNLeTzlU/Dw==”);

conn.setRequestProperty(“UniqueUserId”, “33c07f2f-b4c0-4151-acd3-e0829b303d2c”);

conn.setRequestProperty(“accept”, “application/json”);

conn.setConnectTimeout(15000);

conn.connect();

} catch (IOException e) {

e.printStackTrace();

}

}

try {

//Receive the response from the server

InputStream in = new BufferedInputStream(conn.getInputStream());

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

result = new StringBuilder();

String line;

while ((line = reader.readLine()) != null) {

result.append(line);

}

Log.d(“JSON Parser”, “result: ” + result.toString());

} catch (IOException e) {

// e.printStackTrace();

}

conn.disconnect();

// try parse the string to a JSON object

try {

jObj = new JSONArray(result.toString());

} catch (JSONException e) {

Log.e(“JSON Parser”, “Error parsing data ” + e.toString());

}

// return JSON Object

return jObj;

}

}

API URL及其自定义标头:

URL: http://datamall2.mytransport.sg/ltaodataservice/TaxiAvailability

包头中

AccountKey: pVU56+0hI26DNLeTzlU/Dw==

UniqueUserId: 33c07f2f-b4c0-4151-acd3-e0829b303d2c

accept: application/json

EDIT2:我使用它来获取带有自定义标头的原始数据.

http://requestmaker.com/

编辑:这是我得到的JSON.

{

“odata.metadata”: “http://datamall2.mytransport.sg/ltaodataservice/$metadata#TaxiAvailability”,

“value”: [

{

“Longitude”: 103.84009,

“Latitude”: 1.35989

},

{

“Longitude”: 103.84679,

“Latitude”: 1.35544

},

{

“Longitude”: 103.76928,

“Latitude”: 1.4419

}

….

]

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146231.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • STL vector用法介绍

    STL vector用法介绍介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种

  • 模拟信号和数字信号的区别_模拟信号和数字信号的区别和特点

    模拟信号和数字信号的区别_模拟信号和数字信号的区别和特点根据信号中代表的取值参数的不同,信号可以分为两大类:模拟信号和数字信号1.模拟信号或连续信号指用连续变化的物理量所表达的信息,如温度、湿度、压力、长度、电流、电压等。我们通常又把模拟的信号称为连

  • python协程系列_python协程gevent

    python协程系列_python协程gevent协程协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动切换)

  • struts2拦截器不起作用「建议收藏」

    struts2拦截器不起作用「建议收藏」为什么拦截器不起作用

  • 黑盒测试用例设计方法详解

    黑盒测试用例设计方法详解黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。(一)等价类划分法定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。等价类是指某个输入域的子集合。在该子集合中,各个输入数据…

  • Python中break和continue的区别

    Python中break和continue的区别大部分人总是会搞混break和continue,虽然他们都是结束循环,但是结束的方式并不一样。break用于结束整个循环。continue用于结束当前循环。**1.**break有时候我们写代码时想让它结束整个循环,除了条件达到False结束,我们可以设定一个条件,当他达到这个条件时,结束整个循环。break用于完全跳出循环,执行循环体后面的语句。whileTrue:s=i…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号