我尝试将JSON从PHP服务器端转换为Android中的字符串。
强制关闭(java.lang.String无法转换为JSONObject)错误。
这是我用于HTTP连接的Web类:
public class Web {
public static String readUrl(String url) {
try {
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
HttpResponse response = client.execute(method);
InputStream inputStream = response.getEntity().getContent();
String result = convertInputstreamToString(inputStream);
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private static String convertInputstreamToString(InputStream inputStream){
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line ="";
while ((line = reader.readLine())!=null) {
builder.append(line);
}
return String.valueOf(builder);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
这是我的活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
String result = Web.readUrl("http://192.168.1.53/mana/mana%20records.php");
if (result != null) {
try {
JSONArray records = new JSONArray(result);
for (int i = 0; i < records.length(); i++) {
JSONObject record = records.getJSONObject(i);
Log.d("Records", record.getString("date"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}
}
这是我的JSON:
[{"date":"2015-12-01","Shift Day":"on","Shift Night":"",
"Shift Person":"a","Code":"1","1st":"1000","Size 8":null,
"2nd":"1","3rd":"10","logo":"1000","Storage":"10000"},
{"date":"2015-12-02","Shift Day":"",
"Shift Night":"on","Shift Person":"b","Code":"2","1st":"2000",
"Size 8":null,"2nd":"2","3rd":"20","logo":"2000",
"Storage":"20000"}]