在android系统JSON解析是显示没有结果,非法参数异常,主机名称不能为空 [英] Json parsing in android is showing no results,Illegal Argument Exception,Host name may not be null

查看:332
本文介绍了在android系统JSON解析是显示没有结果,非法参数异常,主机名称不能为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

code的此行是给我的错误:

  HttpPost httppost =新HttpPost(文件:///android_asset/www/me.json);

而不是文件,即使我使用的http:// XYZ ......); 我仍然得到错误
。/ ....................结果
    进口android.os.Bundle;
    进口android.app.Activity;
    进口android.webkit.WebView;
    进口android.widget.TextView;

 进口java.io.BufferedReader中;
进口的java.io.InputStream;
进口java.io.InputStreamReader中;
进口org.apache.http.HttpEntity;
进口org.apache.http.Htt presponse;
进口org.apache.http.client.methods.HttpPost;
进口org.apache.http.impl.client.DefaultHttpClient;
进口org.apache.http.params.BasicHttpParams;公共类MainActivity延伸活动{    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
    TextView的电视=(的TextView)findViewById(R.id.tv1);
    DefaultHttpClient的HttpClient =新DefaultHttpClient(新BasicHttpParams());
    HttpPost httppost =新HttpPost(文件:///android_asset/www/me.json);    为InputStream的InputStream = NULL;    尝试{
        HTT presponse响应= httpclient.execute(httppost);
        HttpEntity实体= response.getEntity();
        字符串结果= NULL;
        的InputStream = entity.getContent();
        // JSON默认为UTF-8
        读者的BufferedReader =新的BufferedReader(新的InputStreamReader(InputStream中,UTF-8),8);
        StringBuilder的SB =新的StringBuilder();        串线= NULL;
        而((行= reader.readLine())!= NULL)
        {
            sb.append(行+\\ n);
        }
        结果= sb.toString();
        TV.setText(结果);
    }赶上(例外五){
       Log.e(MYAPP,异常,E);
    }
    最后{
        尝试{如果(InputStream的!= NULL)inputStream.close();}赶上(例外挤){}
    }
    }}

这是JSON文件

  {RESP:{身份:真实的版本:2.0,艺术家:{简介:一个澳大利亚摇滚乐队,成立于1973年安格斯和Malcolm年轻,他们联手与戴夫·埃文斯(主唱),拉里·范·Kriedt(低音)和科林·伯吉斯(鼓手)。1974年,这两个拉里·范·Kriedt和科林·伯吉斯左,由罗布·贝利(低音)和彼得被替换克拉克(鼓),在1974年进一步的变化看到彼得克拉克离开,托尼电流I(鼓手)加入乐队在1974年6月,他们被哈里联与放大器签署;乔治·杨(马尔科姆&安培;安格斯的兄弟),阿尔伯特制作十一月1974年,戴夫·埃文斯离开了乐队,由苯教斯科特(主唱&安培;风笛)所取代。罗布·贝利也离开于1974年,是由乔治·杨(低音)取代1975年菲尔陆克文(鼓)代替托尼电流I和马克·埃文斯(低音)取代乔治·扬在1977年6月马克埃文斯左,由克里夫·威廉姆斯(低音)为他们在美国的第一次巡回演出所取代。在1980年2月19日苯教斯科特去世,享年33布赖恩·约翰逊(前乔迪岁)加盟代替他的唱功和专辑\\回到黑色\\乐队发行,进贡苯教斯科特,这张专辑成为有史以来第二大​​畅销的专辑全球销量超过40万册。 1983年5月,陆克文菲尔曾的分道扬镳,被西蒙·赖特(鼓)代替,20岁的话。 1989年11月西蒙·赖特离开,由克里斯·斯莱德取代(例如曼弗雷德·曼的地球带,乌利亚协及放大器;事务所)。在夏季,1994年菲尔陆克文\\悄悄\\重新加入了乐队。\\ r \\ n \\ r \\ NAC / DC是澳大利亚最成功的摇滚乐队,与以往在世界各地流行。\\ r \\ n该乐队入选摇滚。名人堂于2003年作为一个演员\\ r \\ n \\ r \\ n当前阵容:\\ r \\ nAngus杨(主音吉他)\\ r \\ nMalcolm杨(节奏吉他)\\ r \\ nBrian约翰逊(主唱)\\ r \\ nCliff威廉姆斯(贝司)\\ r \\ nPhil陆克文(鼓)\\ n,eases_url:http://api.discogs.com/artists/84752/releases,名:AC / DC URI:http://www.discogs.com/artist/AC%2FDC,成员:安格斯年轻,盂兰盆斯科特,布赖恩·约翰逊,斯莱德克里斯,克里夫·威廉姆斯,科林·伯吉斯,戴夫埃文斯,拉里·范·Kriedt,马尔科姆·扬,马克·埃文斯(3),菲尔陆克文,西蒙·赖特(4)],网址: http://www.acdcrocks.com/,http://www.acdc.com/,http://www.acdcpower.net/,http://www.myspace.com/ ACDC,http://en.wikipedia.org/wiki/AC/DC],图像:[{URI:http://api.discogs.com/image/A-84752-1233004620 .JPEG,高度:309,宽度:418,resource_url:http://api.discogs.com/image/A-84752-1233004620.jpeg,类型:主, uri150:http://api.discogs.com/image/A-150-84752-1233004620.jpeg},{URI:http://api.discogs.com/image/A-84752 -1094915280.jpg,高度:313,宽:300,resource_url:http://api.discogs.com/image/A-84752-1094915280.jpg,类型:次要,uri150:http://api.discogs.com/image/A-150-84752-1094915280.jpg},{URI:http://api.discogs.com/image/A -84752-1105107816.jpg,高度:129,宽度:180,resource_url:http://api.discogs.com/image/A-84752-1105107816.jpg,类型: 仲,uri150:http://api.discogs.com/image/A-150-84752-1105107816.jpg},{URI:http://api.discogs.com/image /A-84752-1107645658.jpg,高度:199,宽:200,resource_url:http://api.discogs.com/image/A-84752-1107645658.jpg,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1107645658.jpg},{URI:http://api.discogs.com /image/A-84752-1182165014.jpeg,高度:335,宽度:498,resource_url:http://api.discogs.com/image/A-84752-1182165014.jpeg 类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1182165014.jpeg},{URI:HTTP://api.discogs .COM /图像/ A-84752-1233004627.jpeg,高度:360,宽度:480,resource_url:http://api.discogs.com/image/A-84752-1233004627.jpeg ,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1233004627.jpeg},{URI:HTTP:// API .discogs.com /图像/ A-84752-1233004633.jpeg,高度:247,宽度:457,resource_url:http://api.discogs.com/image/A-84752-1233004633 .JPEG,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1233004633.jpeg},{URI:HTTP:/ /api.discogs.com/image/A-84752-1233004641.jpeg,高度:376,宽度:400,resource_url:http://api.discogs.com/image/A-84752 -1233004641.jpeg,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1233004641.jpeg},{URI:HTTP ://api.discogs.com/image/A-84752-1233004648.jpeg,高度:389,宽度:572,resource_url:http://api.discogs.com/image/A -84752-1233004648.jpeg,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1233004648.jpeg},{URI: http://api.discogs.com/image/A-84752-1297548279.jpeg,高度:414,宽度:600,resource_url:http://api.discogs.com/image /A-84752-1297548279.jpeg,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1297548279.jpeg},{URI :http://api.discogs.com/image/A-84752-1294786426.jpeg,高度:450,宽:450,resource_url:http://api.discogs.com /image/A-84752-1294786426.jpeg,类型:仲,uri150:http://api.discogs.com/image/A-150-84752-1294786426.jpeg}], resource_url:http://api.discogs.com/artists/84752,ID:84752,data_quality:正确的,namevariations:AC / DC,AC DC, AC-DC,AC // DC,ACDC,DC / AC,\\ u042d \\ u0439 \\ u0421 \\ u0438 \\ u0414 \\ u0438 \\ u0421 \\ u0438]}}}


解决方案

创建包含然后字符串从这个JSONObject的类似这样的分析每一个项目一个JSONObject:

MyResponse =


  

{RESP:{身份:真实的版本:......


code:

 的JSONObject json_main =新的JSONObject(MyResponse);
JSONObject的C = json_main.getJSONObject(RESP);
最后弦乐状态= c.getString(状态);

示例

如何处理这方面的工作:
{RESP:{身份:真实的版本:2.0},RESP:{身份:真实的版本:3.0}

 的JSONObject json_main =新的JSONObject(MyResponse);
    JSONArray main_arr = json_main.getJSONArray(RESP);的for(int i = 0; I< main_arr.length();我++)
    {
      JSONObject的C = main_arr.getJSONObject(I)
      最后弦乐状态= c.getString(状态);
    }

This line of code is giving me errors :

 HttpPost httppost = new HttpPost("file:///android_asset/www/me.json");

instead of file,even if i use "http://xyz......"); i still get errors ./....................
import android.os.Bundle; import android.app.Activity; import android.webkit.WebView; import android.widget.TextView;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    TextView TV=(TextView)findViewById(R.id.tv1);
    DefaultHttpClient   httpclient = new DefaultHttpClient(new BasicHttpParams());
    HttpPost httppost = new HttpPost("file:///android_asset/www/me.json");

    InputStream inputStream = null;

    try {
        HttpResponse response = httpclient.execute(httppost);           
        HttpEntity entity = response.getEntity();
        String result=null;
        inputStream = entity.getContent();
        // json is UTF-8 by default
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"), 8);
        StringBuilder sb = new StringBuilder();

        String line = null;
        while ((line = reader.readLine()) != null)
        {
            sb.append(line + "\n");
        }
        result = sb.toString();
        TV.setText(result);
    } catch (Exception e) { 
       Log.e("MYAPP", "exception", e);
    }
    finally {
        try{if(inputStream != null)inputStream.close();}catch(Exception squish){}
    }
    }

}

and this is the json file

{"resp": {"status": true, "version": "2.0", "artist": {"profile": "An Australian rock band, formed in 1973 by Angus and Malcolm Young, they teamed up with Dave Evans (vocals), Larry Van Kriedt (bass) and Colin Burgess (drums). In 1974 both Larry Van Kriedt and Colin Burgess left and were replaced by Rob Bailey (bass) and Peter Clack (drums), a further change in 1974 saw Peter Clack leave and Tony Currenti (drums) join the band. In June 1974 they were signed by Harry Vanda & George Young (Malcolm & Angus's brother) to Albert Productions. In November 1974, Dave Evans left the band and was replaced by Bon Scott (vocals & bagpipes). Rob Bailey also left in 1974 and was replaced by George Young (bass). In 1975 Phil Rudd (drums) replaced Tony Currenti and Mark Evans (bass) replaced George Young.  In June 1977 Mark Evans left and is replaced by Cliff Williams (bass) for their first tour of the USA. On the 19 Feb 1980 Bon Scott died at the age of 33. Brian Johnson (ex Geordie) joined the band to replace him on vocals and the album \"Back In Black\" was released, a tribute to Bon Scott, this album became the 2nd largest selling album of all time with over 40 million copies sold worldwide. In May 1983, Phil Rudd had a parting of the ways and was replaced by Simon Wright (drums), aged 20 then. November 1989 Simon Wright left and is replaced by Chris Slade (ex Manfred Mann's Earth Band, Uriah Heep & The Firm). In summer 1994 Phil Rudd \"quietly\" rejoined the band.\r\n\r\nAC/DC are Australia's most successful rock band ever, and are popular around the world.\r\nThe band was inducted into Rock And Roll Hall Of Fame in 2003 as a performer.\r\n\r\nCurrent line-up:\r\nAngus Young (lead guitar)\r\nMalcolm Young (rhythm guitar)\r\nBrian Johnson (vocals)\r\nCliff Williams (bass guitar)\r\nPhil Rudd (drums)\n", "releases_url": "http://api.discogs.com/artists/84752/releases", "name": "AC/DC", "uri": "http://www.discogs.com/artist/AC%2FDC", "members": ["Angus Young", "Bon Scott", "Brian Johnson", "Chris Slade", "Cliff Williams", "Colin Burgess", "Dave Evans", "Larry Van Kriedt", "Malcolm Young", "Mark Evans (3)", "Phil Rudd", "Simon Wright (4)"], "urls": ["http://www.acdcrocks.com/", "http://www.acdc.com/", "http://www.acdcpower.net/", "http://www.myspace.com/acdc", "http://en.wikipedia.org/wiki/AC/DC"], "images": [{"uri": "http://api.discogs.com/image/A-84752-1233004620.jpeg", "height": 309, "width": 418, "resource_url": "http://api.discogs.com/image/A-84752-1233004620.jpeg", "type": "primary", "uri150": "http://api.discogs.com/image/A-150-84752-1233004620.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1094915280.jpg", "height": 313, "width": 300, "resource_url": "http://api.discogs.com/image/A-84752-1094915280.jpg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1094915280.jpg"}, {"uri": "http://api.discogs.com/image/A-84752-1105107816.jpg", "height": 129, "width": 180, "resource_url": "http://api.discogs.com/image/A-84752-1105107816.jpg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1105107816.jpg"}, {"uri": "http://api.discogs.com/image/A-84752-1107645658.jpg", "height": 199, "width": 200, "resource_url": "http://api.discogs.com/image/A-84752-1107645658.jpg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1107645658.jpg"}, {"uri": "http://api.discogs.com/image/A-84752-1182165014.jpeg", "height": 335, "width": 498, "resource_url": "http://api.discogs.com/image/A-84752-1182165014.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1182165014.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1233004627.jpeg", "height": 360, "width": 480, "resource_url": "http://api.discogs.com/image/A-84752-1233004627.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1233004627.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1233004633.jpeg", "height": 247, "width": 457, "resource_url": "http://api.discogs.com/image/A-84752-1233004633.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1233004633.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1233004641.jpeg", "height": 376, "width": 400, "resource_url": "http://api.discogs.com/image/A-84752-1233004641.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1233004641.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1233004648.jpeg", "height": 389, "width": 572, "resource_url": "http://api.discogs.com/image/A-84752-1233004648.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1233004648.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1297548279.jpeg", "height": 414, "width": 600, "resource_url": "http://api.discogs.com/image/A-84752-1297548279.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1297548279.jpeg"}, {"uri": "http://api.discogs.com/image/A-84752-1294786426.jpeg", "height": 450, "width": 450, "resource_url": "http://api.discogs.com/image/A-84752-1294786426.jpeg", "type": "secondary", "uri150": "http://api.discogs.com/image/A-150-84752-1294786426.jpeg"}], "resource_url": "http://api.discogs.com/artists/84752", "id": 84752, "data_quality": "Correct", "namevariations": ["AC / DC", "AC DC", "AC-DC", "AC//DC", "ACDC", "DC/AC", "\u042d\u0439 \u0421\u0438 \u0414\u0438 \u0421\u0438"]}}}

解决方案

create a jsonobject that holds the string then parse each item from this jsonObject like this:

MyResponse =

{"resp": {"status": true, "version": ...

code :

JSONObject json_main = new JSONObject(MyResponse);
JSONObject c = json_main.getJSONObject("resp");
final String status= c.getString("status");

Example

how to work with this: {"resp": {"status": true, "version": "2.0"},"resp":{"status": true, "version": "3.0"}

   JSONObject json_main = new JSONObject(MyResponse);   
    JSONArray main_arr = json_main.getJSONArray("resp");                                 for(int i = 0; i < main_arr.length(); i++)
    {
      JSONObject c = main_arr.getJSONObject(i);
      final String status = c.getString("status ");
    }

这篇关于在android系统JSON解析是显示没有结果,非法参数异常,主机名称不能为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆