gpt4 book ai didi

java - Android中将json格式的数据转换/解析为java

转载 作者:行者123 更新时间:2023-12-01 11:37:25 24 4
gpt4 key购买 nike

我的应用从 Google Cloud Endpoint 后端获取数据,该数据采用 json 格式。当我在 ListView 中查看此数据时,我得到的是:

enter image description here

这是预期的,因为我没有进行任何形式的解析或转换。我的目标输出是这样的:

enter image description here

我一直在寻找一种方法来做到这一点,但没有运气。 One example 使用不同的方法,IMO 对于我认为不应该超过 5 行代码的东西来说太复杂了。 Another 从文件中读取数据,其他几个文件也是如此。

这是来自 AsyncTask,我在其中调用端点:

@Override
protected void onPostExecute(List<Student> result) {
ArrayAdapter<Student> arrayAdapter = new ArrayAdapter<Student>(getApplicationContext(), R.layout.row_text, result);
studentListView.setAdapter(new ArrayAdapter<Student>(getApplicationContext(), R.layout.activity_endpoint_launcher, result));
studentListView.setAdapter(arrayAdapter);
}

我尝试添加这个:

String jsString = result.toString();
try {
JSONObject jsonObject = new JSONObject(jsString);
String name = jsonObject.getString(TAG_NAME);
Log.d("EndpointLauncher", name);
} catch (JSONException e) {
e.printStackTrace();
}

但我收到错误(但不会使应用程序崩溃):

W/System.err﹕ org.json.JSONException: Value [{"grade":50,"matriculationNumber":"453","name":"Vera Brown"},{"grade":90,"matriculationNumber":"123456","name":"Sam Sung"},{"grade":90,"matriculationNumber":"654321","name":"To Shiba"},{"grade":90,"matriculationNumber":"876123","name":"Ann Droid"}] of type org.json.JSONArray cannot be converted to JSONObject

任何帮助将不胜感激。

最佳答案

问题是它返回一个 jsonarray 并且您将其转换为一个对象,试试这个

JSONArray arr = new JSONArray(jsString);  

然后你就可以了

arr.getJSONObject(0).getString(TAG_NAME);

您可以在其中循环 json 数组中的每个元素并将其放入新类中

List<Student> students = new ArrayList<Student>();
for(int i =0; i < arr.length(); i ++)
{
JSONObject jObject = arr.getJSONObject(i);
Student newS = new Student();
newS.name = jObject.getString("name");
etc...
students.add(newS);
}

关于java - Android中将json格式的数据转换/解析为java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29829498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com