【发布时间】:2016-04-24 14:39:26
【问题描述】:
我想将 ArrayList 中的数据转换为 JSON,然后将其发送到我的网络服务器。列表mTeamDataList 的类型为ArrayList<TeamData>。
TeamData 类是:
public class TeamData
{
String mFullName;
String mShortName;
String mLeague;
//constructor, getters and setters are here
}
我有一个addTeamsToDB() 方法负责将数组中的数据写入网络服务器。这是我目前所拥有的:
public static void addTeamsToDB()
{
if(mTeamDataList.size() == 0)
return;
HttpURLConnection urlConnection = null;
String addTeamURL = "http://api.somewebsite.com/add_team.php";
try
{
Gson gson = new Gson();
URL urlObj = new URL(addTeamURL);
urlConnection = (HttpURLConnection) urlObj.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("POST");
urlConnection.connect();
//I believe converting to json goes here
OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
assert urlConnection != null;
urlConnection.disconnect();
}
}
我在 SO 上找到了几个答案,但它们只显示了插入一个对象或硬编码数据的基本示例。我还没有找到使用 Gson 将一组自定义数据类型对象转换为 JSON 的方法。
有没有一种方法可以做到这一点,或者我必须通过循环手动转换数组中的每个项目?
我正在关注this 教程,但他正在使用NameValuePairs 类来实现这一点。但它已被弃用,所以我不确定用什么代替。
另外,本教程使用的是内置的 JSON java 库,所以如果有人可以展示 Gson 方式,那将非常有帮助。
【问题讨论】:
标签: java android json post gson