我在我的JSONObject中有\,如下所示:
{"coord":[{"lat":"[\"0\"","lng":"\"0\""}],...
我正试图摆脱\ s,如下所示:
{"coord":[{"lat":"0","lng":"0"}],...
为了摆脱\ s,我添加了.replaceAll(“\\\\”,“”),我在其他SO问题上看到了这个问题的答案,但是.replaceAll(“\\\\ “,”“);不管用。有什么建议吗?
GPS gps = new GPS(getApplicationContext());
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
JSONArray coord = new JSONArray();
String lattostring = String.valueOf(latitude);
Log.v("lattostring", lattostring);
String lontostring = String.valueOf(longitude);
Log.v("lontostring", lontostring);
JSONObject latObject = new JSONObject();
String jsonFormattedlat = lattostring.replaceAll("\\\\", "");
String jsonFormattedlon = lontostring.replaceAll("\\\\", "");
Log.v("jsonFormattedlat", jsonFormattedlat);
Log.v("jsonFormattedlom", jsonFormattedlon);
coord.put(jsonFormattedlat);
Log.v("coord1", String.valueOf(coord.put(jsonFormattedlat)));
coord.put(jsonFormattedlon);
coord.put(lontostring);
Log.v("coord2", String.valueOf(coord.put(jsonFormattedlon)));
coord.toString().replace( "\\\"", "");
conn.addValuePair("coord", coord.toString().replace( "\\\"", ""));
Log.v("coord", coord.toString().replace( "\\\"", ""));
答案 0 :(得分:1)
正如我在评论中所述,"[\"0\"","lng":"\"0\""
是密钥"lat"
的单个值,因此问题不在于引号被转义,而是您似乎将“放入”值JSON不正确。
此代码获取您希望的格式。
// make containing object
JSONObject json = new JSONObject();
// get your values
double latitude = 0;
double longitude = 0;
// make array
JSONArray coord = new JSONArray();
// object to put in array
JSONObject coord1 = new JSONObject();
coord1.put("lat", latitude);
coord1.put("lng", longitude);
// put object in array
coord.put(coord1);
// put array in containing object
json.put("coord", coord);
System.out.println(json.toString());
// {"coord":[{"lng":0,"lat":0}]}
答案 1 :(得分:-1)
应该有效:
str = str.replaceAll("\\\\", "");
并且对于单次替换,这将执行:
str = str.replace("\\", "");