我得到了这样的结果
{PickupLocation=204, Jai nagar main road, Chandragandhi Nagar, Ponmeni, Madurai, Tamil Nadu 625016, DropLocation=204, Jai nagar main road, Chandragandhi Nagar, Ponmeni, Madurai, Tamil Nadu 625016, PickupLongitude=78.0928147163509, DropLongitude=78.0928147163509, PickupLatitude=9.92065524221638, DropLatitude=9.92065524221638, CustomerId=99, PhoneNumber=96788484887, CustomerName=Mayil, CustomerLastName=Kannan}
我试过这个
public static void jsonToMap(String t) throws JSONException {
HashMap<String, String> map = new HashMap<String, String>();
JSONObject jObject = new JSONObject(t);
Iterator<?> keys = jObject.keys();
while( keys.hasNext() ){
String key = (String)keys.next();
String value = jObject.getString(key);
map.put(key, value);
}
System.out.println("json : "+jObject);
System.out.println("map : "+map);
}
但是他们不会给json格式,但是我想分开来分别获取值,怎么可能,抱歉我的英语很差,我是android的初学者。
答案 0 :(得分:1)
并非CSV列表中的所有值都具有等号,因此地图可能无法完全记录您的值。在下面的代码片段中,我将没有等号的值存储为地图中没有相应值的键。你可以在两端去掉括号,用逗号和空格分割,然后再用=
拆分,以获得你想到的地图:
String input = "...";
Map<String, String> map = new HashMap<>();
input = input.replaceAll("\\s+\\{\\s+(.*)\\s+\\}\\s+", "$1");
String[] parts = input.split(",\\s+");
for (String part : parts) {
String[] vals = part.split("=");
map.put(vals[0], vals.length > 1 ? vals[1] : null);
}
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}
在这里演示:
答案 1 :(得分:0)
不幸的是,这不是一个有效的Json。恕我直言,你应该:
=
=
,那么你有一个键/值对要添加到词典