gpt4 book ai didi

android - 如何在android中解析一个大的JSON文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:36 26 4
gpt4 key购买 nike

我想解析来自 URL 的 JSON 响应,但我总是遇到错误。我尝试了很多但未能解决问题。请建议我纠正错误。

我的 JSON 响应:

 {
"classification": {
"relevancyScore": 999,
"searchUrl": {
"value": "http://www.bizrate.com/iphone-cases/index__rf--af1__af_assettype_id--10__af_creative_id--6__af_id--50085__af_placement_id--1.html"
}
},
[.. hundreds of lines removed ..]

我的代码:

public class test extends Activity {

/** Called when the activity is first created. */
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ListView lv = (ListView)findViewById(R.id.listView1);

lv.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.fetchTwitterPublicTimeline()));
}

public ArrayList<String> fetchTwitterPublicTimeline()
{
ArrayList<String> listItems = new ArrayList<String>();

try {
URL twitter = new URL(
"http://catalog.bizrate.com/services/catalog/v1/us/product?publisherId=50085&placementId=1&categoryId=1&keyword=iphone+cases&start=0&results=10&sort=relevancy_desc&brandId=&attFilter=&zipCode=90291&biddedOnly=&minRelevancyScore=100&apiKey=58f536aa2fab110bbe0da501150bac1e&format=json");
URLConnection tc = twitter.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(
tc.getInputStream()));

String line;
String str;
while ((line = in.readLine()) != null) {
//str = line.substring(line.indexOf("{"), line.lastIndexOf(line));
//str = line.replaceAll("BIZRATE.Suggest.callback(", null);
//str = str.replaceAll(")", null);
//System.out.println("SubString:"+str);
JSONArray ja = new JSONArray(line);

for (int i = 0; i < ja.length(); i++) {
JSONObject jo = (JSONObject) ja.get(i);
System.out.println("value----"+jo.getJSONObject("product"));
//listItems.add(jo.getString("suggestions"));
}
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return listItems;
}
}

我要解析所有产品的信息。

最佳答案

如果你有来自服务器的大 JSON 文件,最好使用 gson 解析器。我在读取大 JSON 时也遇到了内存不足错误。因为 JSON 首先将数据加载到内存中并对其进行解析。因此可能会出现内存不足异常的变化。

关于android - 如何在android中解析一个大的JSON文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5865621/

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