我希望保留JSON Response(Name,Latitude和Longitude)中的3个值,并将其传递给maps活动以在gmaps中进行标记。 但是,List Pair(String,String)只能使用2个字符串参数。如何,拥有一个包含3个参数的列表对。
///获得第一个答案后编辑的代码
$scope.colorType = function() {
$http.get('stuff.json').then(function(response) {
$scope.colorSelected = response.data.type[$scope.Color];
});
}
$scope.shapeType = function() {
$http.get('shapes.json').then(function(response) {
$scope.shapeSelected = response.data[$scope.Color][$scope.Shape];
});
}
这里result.toString()包含我的输出。例如
InputStream in = conn.getInputStream();
Log.v("Tag","Success");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder result = new StringBuilder();
String line;
while((line = reader.readLine()) != null) {
result.append(line);
}
if(result != null){
List<Pair<String, String>> allNames = new ArrayList<>();
try
{
JSONArray jsonArray = new JSONArray(result.toString());
for (int i=0; i<result.toString().length(); i++) {
JSONObject jobj = jsonArray.getJSONObject(i);
String name = jobj.getString("NAME");
String latitude = jobj.getString("LATITUDE");
String Longitude = jobj.getString("LONGITUDE");
allNames.add(Pair.create(name, latitude));
}
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
}
答案 0 :(得分:3)
这就是你想要的:
List<Pair<String, String>> filedList = new ArrayList<>();
JSONObject jsonObject = new JSONObject(result);
try {
String status = jsonObject.getString("STATUS");
filedList.add(new Pair<String, String>("STATUS", status));
} catch (JSONException e) {
e.printStackTrace();
}
更新后,我看到你的json数据变得有点复杂,因此使用JSONObject
变得不太合适。
我的建议是为您的目的使用json库,GSON
是一个不错的选择。