编码问题是小婊砸。
编码问题是小婊砸。
编码问题是小婊砸。
——重要的事情说三遍都不够啊摔!
MyEclipse编码格式是UTF-8,JAVA传输编码是ISO,而我的Eclipse编码格式是GBK。
以后知道了,做项目一定首先要统!一!编!码!格!式!
其实发生编码问题是始料未及的,因为JSON格式数据 非数组格式解析是没有问题的,但是一旦进入了数组格式解析,那就再见了。
protected static Map<String, Object> parseJsonMulti(String strResult) {
Map<String,Object> searchResult_map=new HashMap<String, Object>();
try {
JSONObject jsonObjs = new
JSONObject(strResult).getJSONObject("SeatInfo");
//flag=1,不存在相符用户;flag=0,存在,并返回数组
int flag = jsonObjs.getInt("flag");
if(flag==1){
System.out.println(flag);
}else if(flag==0){
JSONArray SeatFloorArray = jsonObjs.getJSONArray("SeatFloor");
String[] SeatFloor =new BasicSetting().getJsonToStringArray(SeatFloorArray);
int i = SeatFloorArray.length();
JSONArray SeatNumberArray = jsonObjs.getJSONArray("SeatNumber");
String[] SeatNumber =new BasicSetting().getJsonToStringArray(SeatNumberArray);
JSONArray SeatStateArray = jsonObjs.getJSONArray("State");
String[] SeatState =new BasicSetting().getJsonToStringArray(SeatStateArray);
searchResult_map.put("SeatFloor", SeatFloor);
searchResult_map.put("SeatNumber", SeatNumber);
searchResult_map.put("SeatState", SeatState);
searchResult_map.put("Number",i);
}
} catch (JSONException e) {
e.printStackTrace();
System.out.println("Json parse error");
}
return searchResult_map;
}
出问题的JSON数据:
{
'SeatInfo': {
'flag': 0,
{
"SeatId": [
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8"
]
},
{
"SeatFloor": [
"1",
"1",
"1",
"2",
"2",
"2",
"3",
"3"
]
},
{
"SeatNumber": [
"1",
"2",
"3",
"1",
"2",
"3",
"1",
"2"
]
},
{
"State": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
]
},
{
"UserId": [
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1",
"-1"
]
},
{
"ReserveTime": [
null,
null,
null,
null,
null,
null,
null,
null
]
},
{
"LockTime": [
null,
null,
null,
null,
null,
null,
null,
null
]
},
{
"Memo": [
null,
null,
null,
null,
null,
null,
null,
null
]
}
}
}
报异常:
Expected a ":" at character 67.
找了很多办法都没有解决,初步打算新建一个工作空间换一个编码格式试试。。
但是这是SeatsListActivity漫漫调试之路的一小步而已,因为,有ListView的地方就是我的坟墓:)
不说了调去了。