Android 根据JSON响应添加文本
我将收到包含以下内容的JSON响应:Android 根据JSON响应添加文本,android,json,Android,Json,我将收到包含以下内容的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 = n
{..."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循环,或者这个语句是否有帮助
---更新---
JSONArray数组=obj.getJSONArray(“工作日”);
if(数组==null){
tvDayOff=(TextView)getActivity().findViewById(R.id.tvDayOff);
tvDayOff.setText(“无”);
}
//创建一个整数数组来容纳这些数字。
int[]number=新的int[array.length()];
数组。排序(数字);
//从JSON数组中提取数字。
对于(int i=0;i
以下是一个简单的示例,说明如何根据区域设置获取值:
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...
);
}
从这里,您只需要使用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]]
);
}
publicstaticvoidmain(字符串[]args){
int[]数组={3,5,2};//数组
Arrays.sort(array);//对数组进行排序
for(int i=0;i
最后一步是获取数组,为此,我建议您阅读
编辑:
你不能在一个循环中完成它。首先需要获取值,然后对数组进行排序。完成此操作后,可以按正确的顺序获取字符串
// 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]]
);
}
//创建一个int数组来容纳这些数字。
int[]number=新的int[array.length()];
//从JSON数组中提取数字。
对于(int i=0;i
JSONObject obj=新的JSONObject(结果)//来自后端的结果
JSONArray DayOff=obj.getJSONArray(“工作日”);//我认为工作日是一个数组
//如果weekday看起来像{“weekday”:[2,4,3]},那么它就是一个数组
String[]dayText=新字符串[DayOff.length()];
对于(int i=0,len=DayOff.length();i1使用数组对int数组进行排序。排序
。2迭代值3使用日期格式符号将int转换为字符串。getWeekdays
。可能是这样吗?您忘记将值放入int[]在排序之前,需要将数组
循环一次到initnumbers
然后进行排序。然后可以获取字符串值(并将其放在需要的位置),这是一个问题,首先DayOff(i)
是伪代码,您需要使用getter获取值。其次,您应该订购此数组。最后,不需要开关,因为这些值存在。谢谢您的答案,它几乎可以工作。但是仍然存在一些问题,我已更新了我的答案,但周日显示的工作日偏移了1.1,周一显示的是2,依此类推。Al因此,我认为我的数组排序不正确。@JerryKo查看编辑。对于偏移量,第一天是星期天,但在索引1处。如果希望一周从星期一开始,可能需要使用模。谢谢您的回答
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]]
);
}
// 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]]
);
}
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;
}
}