我的文本文件包含JSON数据,格式如下:
[ {
"belongs_to_suite": "no",
"belongs_to_suite_id": "",
"brand_family": "",
"cat_manufacturer_id": 4382,
"cat_sw_edition_id": null,
"cat_sw_product_id": 38,
"cat_sw_release_id": 47354894, } ]
我想只读brand_family
,我想我需要一个JSON数组。
我是否需要首先使用JSON对象定义此格式?
我已经下载了org.json lib,我有以下代码,我正在阅读文本文件,但是我无法找到如何定义格式,然后将[{}...{}]
中的所有数据导入到数组中:
FileInputStream fstream = new FileInputStream("file.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
try {
JSONObject obj = new JSONObject(br);
String n = obj.getString("version");
//int a = obj.getInt("age");
System.out.println(n);
}
答案 0 :(得分:0)
如评论中所述,您的JSON是一个数组,所以首先应该调用:
JSONArray array = new JSONArray(br);
然后你可以做一些大小或获得第一个对象:
JSONObject first = array.getJSONObject(0);
最后,拥有JSONObject
,您可以提取和处理任何字段:
System.out.println(first.getString(""));
答案 1 :(得分:0)
您可以简单地执行以下操作:
JSONParser parser=new JSONParser();
try {
JSONObject jsonObject = (JSONObject) parser.parse(new InputStreamReader(new FileInputStream("D://jsontest.txt")));
JSONArray lang= (JSONArray) jsonObject.get("obj");
for(int i=0; i<lang.size(); i++){
JSONObject obj=(JSONObject) lang.get(i);
System.out.println(obj.get("brand_family"));
}
}catch(Exception e){
e.printStackTrace();
}
将文件更改为以下内容:
{
"obj": [
{
"belongs_to_suite": "no",
"belongs_to_suite_id": "",
"brand_family": "1",
"cat_manufacturer_id": 4382,
"cat_sw_edition_id": null,
"cat_sw_product_id": 38,
"cat_sw_release_id": 47354894
},
{
"belongs_to_suite": "yes",
"belongs_to_suite_id": "",
"brand_family": "2",
"cat_manufacturer_id": 4382,
"cat_sw_edition_id": null,
"cat_sw_product_id": 38,
"cat_sw_release_id": 47354894
}
]
}