Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 根据JSON响应添加文本_Android_Json - Fatal编程技术网

Android 根据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

我将收到包含以下内容的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循环,或者这个语句是否有帮助

---更新---

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[]在排序之前,需要将
数组
循环一次到init
numbers
然后进行排序。然后可以获取字符串值(并将其放在需要的位置),这是一个问题,首先
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;
}
}