我将收到包含此内容的JSON回复:
{..."Weekday":[3,4,2],...} //numbers might not be in Ascending order
然后根据“工作日”里面的内容,我将在周日打印0,周一打1,依此类推。因此,上面打印的文本将是;
"Tuesday,Wednesday,Thursday" //This should be in ascending order
我如何检查和打印我想要的内容,我这样做是这样的:
JSONObject obj = new JSONObject(result); //result from backend
JSONObject DayOff = obj.getJSONObject("Weekday");
...
tvWeekdays = (TextView) getActivity().findViewById(R.id.tvWeekdays);
tvWeekdays.setText("The final result");
我不确定如何实现这一点,我想的可能是while循环或if语句会有帮助吗?
--- --- UPDATE
JSONArray array = obj.getJSONArray("Weekday");
if (array == null){
tvDayOff = (TextView) getActivity().findViewById(R.id.tvDayOff);
tvDayOff.setText("None");
}
// Create an int array to accomodate the numbers.
int[] numbers = new int[array.length()];
Arrays.sort(numbers);
// Extract numbers from JSON array.
for (int i = 0; i < array.length(); ++i) {
numbers[i] = array.optInt(i);
System.out.println(
DateFormatSymbols.getInstance().getWeekdays()[numbers[i]]
);
}
答案 0 :(得分:1)
以下是如何根据区域设置获取值的简单示例:
public static void main(String[] args){
for(int i = 0; i < 7; ++i)
System.out.println(
DateFormatSymbols.getInstance().getWeekdays()[i+1] //First cell is empty...
);
}
这是我的输出(在法语区域设置中):
dimanche //Sunday
lundi //Monday
mardi
mercredi
jeudi
vendredi
samedi //Saterday
从这里,您只需要使用Arrays.sort(int[])
对整数数组进行排序并获取字符串。
不使用JSON,就可以这样做:
public static void main(String[] args){
int[] array = {3, 5, 2}; //The array
Arrays.sort(array); //Sort the array
for(int i = 0; i < array.length; ++i) //Loop on the result
System.out.println(
DateFormatSymbols.getInstance().getWeekdays()[array[i]]
);
}
最后一步是获取阵列,为此,我建议你阅读this answer
编辑:
你不能在一个循环中完成它。首先需要获取值然后对数组进行排序。完成此操作后,您可以按正确的顺序获取字符串
// Create an int array to accomodate the numbers.
int[] numbers = new int[array.length()];
// Extract numbers from JSON array.
for (int i = 0; i < array.length(); ++i) {
numbers[i] = array.optInt(i);
}
Arrays.sort(numbers);
for (int i = 0; i < numbers.length; ++i) {
System.out.println(
DateFormatSymbols.getInstance().getWeekdays()[numbers[i]]
);
}
答案 1 :(得分:1)
JSONObject obj = new JSONObject(result); //result from backend
JSONArray DayOff = obj.getJSONArray("Weekday"); // I think weekday is an array
// if weekday look like {"weekday":[2,4,3]}, its an array if so
String[] dayText = new String[DayOff.length()];
for(int i=0, len=DayOff.length(); i<len; i++){
switch (DayOff(i)) {
case 0: dayText[i] = "Sunday";
break;
case 1: dayText[i] = "Monday";
break;
case 2: dayText[i] = "Tuesday";
break;
}
}
试试这个..