Json System.err:位置 0 处的意外字符 () 仅来自 php


URL url = new URL(host);
urlConnection = (HttpURLConnection) url.openConnection();
int code = urlConnection.getResponseCode();
System.out.print(code);
if (code==200) {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
if (in != null) {
String content = in.toString();
System.out.print(content);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(new InputStreamReader(in, "UTF-8"));
result = (String) jsonObject.get("name");
System.out.print(jsonObject);
}
in.close();
}

当我有一个像http://www.example.com/json.txt这样的主机字符串时,一切正常,但是当我有像www.example.com/index.php?data=data&data2=data2这样的主机字符串时,我收到以下错误:

W/System.err:位置 0 处出现意外字符 ((。 I/系统输出: 200java.io.BufferedInputStream@8bc189fpp = [0, 700, 250, 700]

我在浏览器中的 PHP 输出看起来不错,当我将其复制到json.txt时,它也可以正常工作。

我尝试玩urlConnection POST,GET,RAW 没有运气。

有什么想法吗?

问题可能是 php json 中的 BOM。

我愿意:

URL url = new URL(host);
urlConnection = (HttpURLConnection) url.openConnection();
int code = urlConnection.getResponseCode();
System.out.print(code);
if(code==200){
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
StringWriter writer = new StringWriter();
if (in != null) {

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = bufferedReader.readLine()) != null)
result += line;

result = result.substring(1);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject)jsonParser.parse(result);
result=(String) jsonObject.get("name");
System.out.print(jsonObject);
}
in.close();
}

它有效。

最新更新