GVKun编程网logo

php foreach 中嵌套 switch(php嵌套for循环格式)

1

想了解phpforeach中嵌套switch的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php嵌套for循环格式的相关问题,此外,我们还将为您介绍关于${}中嵌套${}、Can''tlo

想了解php foreach 中嵌套 switch的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于php嵌套for循环格式的相关问题,此外,我们还将为您介绍关于${} 中嵌套 ${}、Can''t locate Switch.pm in @INC (you may need to install the Switch module)、Django 中嵌套 Json 的序列化程序、Java 中的 switch 于 C# 中的 switch 的区别的新知识。

本文目录一览:

php foreach 中嵌套 switch(php嵌套for循环格式)

php foreach 中嵌套 switch(php嵌套for循环格式)

$arr    = array(1,2,3,4,5);
foreach ($arr as $v){
    switch ($v){
        case 1:
            echo 1;
            break;
        case 2:
            echo 2;
            break;
    }
}

break不会直接结束循环。

如果不确定,break是否会直接结束循环,执行以上代码即可验证。

${} 中嵌套 ${}

${} 中嵌套 ${}

后台中 

req.setAttribute("workAreaList",workAreaList);
req.setAttribute("tPdmisMonreportPage", tPdmisMonreport);
-------------------------解释说明---------------------------
workAreaList是List<T> T实体类中有一个字段叫exp1,里面存了1/2/3(类似排序字段)
tPdmisMonreport也是一个List<T> T实体类中的字段是这样的 tld1。tld2、tld3、epd1、epd2、epd3等等

前台中
我要实现按照 workAreaList循环 显示出tPdmisMonreport中的字段
也就是用exp1的值“1” 替代 tld1中的“1

---------------------------------------------------------------
<c:forEach items="${workAreaList}" var="workArea">
<c:set var=''tld'' value="tld${workArea.exp1}" scope="page"/>
<c:set var=''epd'' value="epd${workArea.exp1}" scope="page"/>
  <input id="${tld}" name="${tld}" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage[tld]}''>
  <input id="${epd}" name="${epd}" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage[epd]}''>
</c:forEach>

||
<input id="tld1" name="tld1" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.tld1}''>
<input id="tld2" name="tld2" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.tld2}''>
<input id="tld3" name="tld3" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.tld3}''>
<input id="epd1" name="epd1" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.epd1}''>
<input id="epd2" name="epd2" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.epd2}''>
<input id="epd3" name="epd3" type="text" style="width: 150px;display: none" class="inputxt"  value=''${tPdmisMonreportPage.epd3}''>

Can''t locate Switch.pm in @INC (you may need to install the Switch module)

Can''t locate Switch.pm in @INC (you may need to install the Switch module)

android 编译提示 "Can''t locate Switch.pm in @INC (you may need to install the Switch module)" 错误

Can''t locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../Spreadsheet /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../ /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761 /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common/emigen_v1.pm line 1348.
BEGIN failed--compilation aborted at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common/emigen_v1.pm line 1348.
Compilation failed in require at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/emigen.pl line 104.
BEGIN failed--compilation aborted at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/emigen.pl line 104.
Can''t locate Switch.pm in @INC (you may need to install the Switch module) (@INC contains: /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../Spreadsheet /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../ /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761 /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common/emigen_v1.pm line 1348.
BEGIN failed--compilation aborted at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/../common/emigen_v1.pm line 1348.
Compilation failed in require at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/emigen.pl line 104.
BEGIN failed--compilation aborted at /home/xxx/project/vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT6761/emigen.pl line 104.
make: *** [tools/emigen/emigen.mk:48: /home/xxx/project/out/target/product/k61v1_64_bsp_pax/obj/PRELOADER_OBJ/inc/custom_emi.h] Error 2
make: *** Waiting for unfinished jobs....
make: *** [tools/emigen/emigen.mk:52: /home/xxx/project/out/target/product/k61v1_64_bsp_pax/obj/PRELOADER_OBJ/MTK_Loader_Info.tag] Error 2
unable to load Private Key

解决办法:

sudo apt-get install libswitch-perl

Django 中嵌套 Json 的序列化程序

Django 中嵌套 Json 的序列化程序

如何解决Django 中嵌套 Json 的序列化程序

我有以下 JSON。我从 api 中获得,我想在 Django 中为这个 JSON 编写一个序列化程序,有人知道如何编写它,我只是把它写下来,但它给了我“错误无效数据或预期目录并得到一个列表”等.任何帮助将不胜感激

  1. {
  2. "artikelNr1":133198,"artikelNr2":0,"sku":"133198.00","statusCode":4,"statusText":"Manuell Bewirtschaftung","saisonRetourenCode":0,"saisonRetourenText":"unbestimmt","saisonCode":0,"saisonText":"SAISON","geschlechtCode":1,"geschlechtText":"UNISEX","rayonCode":0,"rayonText":"<RAYON>","warenArtCode":6600,"warenArtText":"ACCESSOIRES/DIV.","wuCode":66,"wuText":"ACCESSOIRES/DIV.","waCode":6,"warenGruppe":"DESSOUS","alterCode":20164,"farbe":"BLACK","material":"PLASTIC","bezeichnung":"''METRO BOUTIQUE GIFTCARD'' CHF20","pictureName":"art_133198_00.jpg","picturePathLocal":"p:\\\\","kollektion":"","comCode":"METRO BOUTIQUE GESCHENKKARTE CHF 20","lieferant":"...","eKchf":0,"eti":20,"vp":20,"groessenCode":0,"groessen":[
  3. {
  4. "artikelNr1":133198,"artikelGr":1,"groessenText":"os","sku":"133198.00.01","istZl":463,"verkPeriode":-268
  5. }
  6. ],"zlQty":463,"productId":82482,"published":true,"categories":[
  7. {
  8. "categoryRoots":[
  9. {
  10. "id":1,"name":"damen","parentCategoryId":0
  11. },{
  12. "id":188,"name":"Geschenkkarten","parentCategoryId":1
  13. }
  14. ],"id":188,"parentCategoryId":1
  15. },{
  16. "categoryRoots":[
  17. {
  18. "id":2,"name":"Herren",{
  19. "id":186,"parentCategoryId":2
  20. }
  21. ],"id":186,"parentCategoryId":2
  22. },{
  23. "categoryRoots":[
  24. {
  25. "id":3,"name":"Mädchen",{
  26. "id":183,"parentCategoryId":3
  27. }
  28. ],"id":183,"parentCategoryId":3
  29. },{
  30. "categoryRoots":[
  31. {
  32. "id":4,"name":"Jungen",{
  33. "id":180,"parentCategoryId":4
  34. }
  35. ],"id":180,"parentCategoryId":4
  36. },{
  37. "categoryRoots":[
  38. {
  39. "id":1,{
  40. "id":376,"name":"Bekleidung","parentCategoryId":1
  41. },{
  42. "id":21,"name":"Fanshop","parentCategoryId":376
  43. }
  44. ],"id":21,"parentCategoryId":376
  45. },{
  46. "id":411,"parentCategoryId":2
  47. },{
  48. "id":32,"parentCategoryId":411
  49. }
  50. ],"id":32,"parentCategoryId":411
  51. }
  52. ],"productName":"Giftcard","shortDescription":"Giftcard - Schwarz + Gelb","fullDescription":"<p>Metro Geschenkkarte - die perfekte Geschenkidee für alle Gelegenheiten<br />Dient als komfortables Zahlungsmittel in sämtlichen Metro Boutique Filialen und in unserem Online-Shop<br />Die Geschenkkarte kann in jeder Filiale aufgeladen werden<br /><spancolor:red''><spancolor:red''>Nicht retournierbar!</span></span></p>","flag":""
  53. }
  1. #---------- GrossenSerializer goes to the main object-------------#
  2. class GrossenSerializer(serializers.Serializer):
  3. artikelNr1 = serializers.IntegerField()
  4. artikelNr2 = serializers.IntegerField()
  5. artikelGr = serializers.IntegerField()
  6. groessenText = serializers.CharField()
  7. sku = serializers.CharField()
  8. istZl = serializers.IntegerField()
  9. verkPeriode = serializers.IntegerField()
  10. #---------- rootsCategories goes to the Categries-------------#
  11. class CategoriesRootsSerializer(serializers.Serializer):
  12. id = serializers.IntegerField()
  13. name = serializers.CharField()
  14. parentCategoryId = serializers.IntegerField()
  15. #---------- CategoriesSerializer goes to the main object-------------#
  16. class CategoriesSerializer(serializers.Serializer):
  17. id = serializers.IntegerField()
  18. name = serializers.CharField(max_length=50)
  19. parentCategoryId = serializers.IntegerField()
  20. categoryRoots = CategoriesRootsSerializer(many=True,read_only=True)
  21. #---------- main json object-------------#
  22. class RecommendationjsonSerializer(serializers.Serializer):
  23. sku = serializers.CharField(max_length=50)
  24. artikelNr1 = serializers.IntegerField()
  25. artikelNr2 = serializers.IntegerField()
  26. StatusCode = serializers.IntegerField()
  27. statusText = serializers.CharField(max_length=50)
  28. SaisonRetourenCode = serializers.IntegerField()
  29. saisonRetourenText = serializers.CharField(max_length=50)
  30. saisonCode = serializers.IntegerField()
  31. saisonText = serializers.CharField(max_length=50)
  32. geschlechtCode = serializers.IntegerField()
  33. geschlechtText = serializers.CharField(max_length=50)
  34. RayonCode = serializers.IntegerField()
  35. rayonText = serializers.CharField(max_length=50)
  36. warenArtCode = serializers.IntegerField()
  37. warenArtText = serializers.CharField(max_length=50)
  38. wuCode = serializers.IntegerField()
  39. wuText = serializers.CharField(max_length=50)
  40. waCode = serializers.IntegerField()
  41. warenGruppe = serializers.CharField(max_length=50)
  42. alterCode = serializers.IntegerField()
  43. farbe = serializers.CharField(max_length=50)
  44. material = serializers.CharField(max_length=50)
  45. bezeichnung = serializers.CharField(max_length=50)
  46. pictureName = serializers.CharField(max_length=50)
  47. picturePathLocal = serializers.CharField(max_length=50)
  48. kollektion = serializers.CharField(max_length=50)
  49. comCode = serializers.CharField(max_length=50)
  50. lieferant = serializers.CharField(max_length=50)
  51. eKchf = serializers.FloatField()
  52. eti = serializers.FloatField()
  53. vp = serializers.FloatField()
  54. groessenCode = serializers.IntegerField()
  55. groessen = GrossenSerializer(many=True,read_only=True)
  56. zlQty = serializers.IntegerField()
  57. productId = serializers.IntegerField()
  58. published = serializers.BooleanField()
  59. categories = CategoriesSerializer(many=True,read_only=True)
  60. productName = serializers.CharField(max_length=50)
  61. shortDescription = serializers.CharField(max_length=150)
  62. fullDescription = serializers.CharField()
  63. flag = serializers.CharField()

我的 serlizer 类就是这个 当我尝试针对有效运行此代码时,它会失败并给我这个错误

  1. {''non_field_errors'': [ErrorDetail(string=''Invalid data. Expected a dictionary,but got list.'',code=''invalid'')]}
  2. {''required'': ''This field is required.'',''null'': ''This field may not be null.'',''invalid'': ''Invalid data. Expected a dictionary,but got {datatype}.''}

解决方法

只需使用 Serializer fields 构建它。像这样:

  1. from rest_framework import serializers
  2. class CategoryRootSerializer(serializers.Serializer):
  3. id = serializers.IntegerField()
  4. name = serializers.CharField()
  5. parentCategoryId = serializers.IntegerField()
  6. class CategorySerializer(serializers.Serializer):
  7. id = serializers.IntegerField()
  8. name = serializers.CharField()
  9. parentCategoryId = serializers.IntegerField()
  10. categoryRoots = CategoryRootSerializer(many=True,read_only=True)
  11. class GroessenSerializer(serializers.Serializer):
  12. artikelNr1 = serializers.IntegerField()
  13. artikelNr2 = serializers.IntegerField()
  14. artikelGr = serializers.IntegerField()
  15. groessenText = serializers.CharField()
  16. sku = serializers.CharField()
  17. istZl = serializers.IntegerField()
  18. verkPeriode = serializers.IntegerField()
  19. class DataSerializer(serializers.Serializer):
  20. artikelNr1 = serializers.IntegerField()
  21. groessenCode = serializers.IntegerField()
  22. zlQty = serializers.IntegerField()
  23. productId = serializers.IntegerField()
  24. published = serializers.BooleanField()
  25. productName = serializers.CharField()
  26. grossen = GroessenSerializer(many=True,read_only=True)
  27. categories = CategorySerializer(many=True,read_only=True)
,

我稍微修改了你的序列化器,你可以用发布的 json 试试

  1. class GrossenSerializer(serializers.Serializer):
  2. artikelNr1 = serializers.IntegerField()
  3. artikelNr2 = serializers.IntegerField()
  4. artikelGr = serializers.IntegerField()
  5. groessenText = serializers.CharField()
  6. sku = serializers.CharField()
  7. istZl = serializers.IntegerField()
  8. verkPeriode = serializers.IntegerField()
  9. def validate(self,attrs):
  10. return super(GrossenSerializer,self).validate(attrs)
  11. class CategoriesRootsSerializer(serializers.Serializer):
  12. id = serializers.IntegerField()
  13. name = serializers.CharField()
  14. parentCategoryId = serializers.IntegerField()
  15. def validate(self,attrs):
  16. return super(CategoriesRootsSerializer,self).validate(attrs)
  17. class CategoriesSerializer(serializers.Serializer):
  18. id=serializers.IntegerField()
  19. name=serializers.CharField(max_length=50)
  20. parentCategoryId=serializers.IntegerField()
  21. categoryRoots=serializers.ListField(
  22. child=CategoriesRootsSerializer(many=True,read_only=True))
  23. def validate(self,attrs):
  24. return super(CategoriesSerializer,self).validate(attrs)
  25. class RecommendationJsonSerializer(serializers.Serializer):
  26. sku=serializers.CharField(max_length=50)
  27. artikelNr1=serializers.IntegerField()
  28. artikelNr2=serializers.IntegerField()
  29. StatusCode=serializers.IntegerField(required=False)
  30. statusText=serializers.CharField(max_length=50)
  31. SaisonRetourenCode=serializers.IntegerField(required=False)
  32. saisonRetourenText=serializers.CharField(max_length=50)
  33. saisonCode=serializers.IntegerField()
  34. saisonText=serializers.CharField(max_length=50)
  35. geschlechtCode=serializers.IntegerField()
  36. geschlechtText=serializers.CharField(max_length=50)
  37. RayonCode=serializers.IntegerField(required=False)
  38. rayonText=serializers.CharField(max_length=50)
  39. warenArtCode=serializers.IntegerField()
  40. warenArtText=serializers.CharField(max_length=50)
  41. wuCode=serializers.IntegerField()
  42. wuText=serializers.CharField(max_length=50)
  43. waCode=serializers.IntegerField()
  44. warenGruppe=serializers.CharField(max_length=50)
  45. alterCode=serializers.IntegerField()
  46. farbe=serializers.CharField(max_length=50)
  47. material=serializers.CharField(max_length=50)
  48. bezeichnung=serializers.CharField(max_length=50)
  49. pictureName=serializers.CharField(max_length=50)
  50. picturePathLocal=serializers.CharField(max_length=50)
  51. kollektion=serializers.CharField(max_length=50,allow_blank=True)
  52. comCode=serializers.CharField(max_length=50)
  53. lieferant=serializers.CharField(max_length=50)
  54. eKchf=serializers.FloatField()
  55. eti=serializers.FloatField()
  56. vp=serializers.FloatField()
  57. groessenCode=serializers.IntegerField()
  58. groessen=GrossenSerializer(many=True,read_only=True)
  59. zlQty=serializers.IntegerField()
  60. productId=serializers.IntegerField()
  61. published=serializers.BooleanField()
  62. categories=CategoriesSerializer(many=True,read_only=True)
  63. productName=serializers.CharField(max_length=50)
  64. shortDescription=serializers.CharField(max_length=150)
  65. fullDescription=serializers.CharField()
  66. flag=serializers.CharField(allow_blank=True)
  67. def validate(self,attrs):
  68. return super(RecommendationJsonSerializer,self).validate(attrs)

Java 中的 switch 于 C# 中的 switch 的区别

Java 中的 switch 于 C# 中的 switch 的区别

一、java 当中的 switch 与 C# 相比有以下区别

 注:在 java 中 switch 后的表达式的类型只能为以下几种:byte、short、char、int(在 Java1.6 中是这样),
   在 java1.7 后支持了对 string 的判断
   
   还有一点要注意的是:在 java 中如果 switch 的 case 语句中少写了 break; 这个关键字,在编译的时候并没有报错
             但是在执行的时候会一直执行所有 case 条件下的语句并不是去判断,所以会一直执行直到遇到 break 关键字跳出或者一直执行到 defaut 语句。
             还有就是如果在 switch 表达的结果在 case 中没话 swithc 就会从 default 执行,这是与 C# 不同的地方。

public class TestSwitch{
    public static void main(String args[]){
        char c = ''a'';        //char类型字符
        switch(c){
            default:
                System.out.println("打印默认值");
                break;
            case ''a'':
                System.out.println("a");
                break;
            case ''b'':
                System.out.println(''b'');
                break;
            case ''c'':
                System.out.println(''c'');
                break;
            case ''d'':
                System.out.println("d");
                break;
            
        }
    }
}

 

关于php foreach 中嵌套 switchphp嵌套for循环格式的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于${} 中嵌套 ${}、Can''t locate Switch.pm in @INC (you may need to install the Switch module)、Django 中嵌套 Json 的序列化程序、Java 中的 switch 于 C# 中的 switch 的区别等相关内容,可以在本站寻找。

本文标签: