0

我试图从下面的 json 数据中显示“brand_name”和“description”。实际上那个 json 数据文件在 res/raw/brand.txt 下没问题。事实上,我的 logcat 也没有显示打印的值......

请提出建议

感谢您宝贵的时间!..

请在这里找到我的来源

protected void get_brands_data() {      
    InputStream inputStream = getResources().openRawResource(R.raw.brand);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    int prdct;
    try {
        prdct = inputStream.read();
        while (prdct != -1) {
            byteArrayOutputStream.write(prdct);
            prdct = inputStream.read();
        }
        inputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        // Parse the data into jsonobject to get original data in form of json.         
        JSONObject jObject = new JSONObject(byteArrayOutputStream.toString());
        JSONObject jObjectResult = jObject.getJSONObject("Products");

        String br_name = "";
        String br_desc = "";
        System.out.println("------" br_name);
        System.out.println("------" br_desc);
        t1.setText(br_name);
        t2.setText(br_desc);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

JSON数据

{
"PublicationID": 53,
"PublicationDate": "18/01/2013",
"Publicationbackgroundimage": null,
"Products": [
    {
        "SequenceKey": 1,
        "ProductID": 100630,
        "Brand_Name": "Lindauer",
        "Region": "",
        "Country_of_Origin": "New Zealand",
        "Description": "Lindauer, the country's most popular sparkling wine brand, started life as a bold statement about the quality of wine that can be created in New Zealand's cool-climate. Made from traditional champagne grape varieties, Chardonnay and Pinot Noir and more recently premium Marlborough Sauvignon Blanc grapes, it uses the authentic method of bottling the wine for its second fermentation, a technique that creates the sparkle and distinctive yeasty flavours, regularly outperforming more expensive wines. Wines in this range include Lindauer Brut NV, Lindauer Fraise, Lindauer Rose, Lindauer Sec and Lindauer Sauvignon Blanc."
    }
  ]
}
4

1 回答 1

1

我会用这个替换你的“资源阅读器”:

String json = "";
try {
    BufferedInputStream resourceStream = new BufferedInputStream(getResources().openRawResource(R.raw.brand));
    BufferedReader reader = new BufferedReader(new InputStreamReader(resourceStream));

    String line;
    while((line = reader.readLine()) != null) {
        json += line;
    }
    reader.close();
    resourceStream.close();
}
catch(Exception ex) {
    Log.e("myApp", ex.getMessage());
}

接着:

JSONObject jObject = new JSONObject(json);
于 2013-06-13T11:23:00.887 回答