想了解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循环格式)
- ${} 中嵌套 ${}
- 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循环格式)
$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)
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 的序列化程序
我有以下 JSON。我从 api 中获得,我想在 Django 中为这个 JSON 编写一个序列化程序,有人知道如何编写它,我只是把它写下来,但它给了我“错误无效数据或预期目录并得到一个列表”等.任何帮助将不胜感激
{
"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":[
{
"artikelNr1":133198,"artikelGr":1,"groessenText":"os","sku":"133198.00.01","istZl":463,"verkPeriode":-268
}
],"zlQty":463,"productId":82482,"published":true,"categories":[
{
"categoryRoots":[
{
"id":1,"name":"damen","parentCategoryId":0
},{
"id":188,"name":"Geschenkkarten","parentCategoryId":1
}
],"id":188,"parentCategoryId":1
},{
"categoryRoots":[
{
"id":2,"name":"Herren",{
"id":186,"parentCategoryId":2
}
],"id":186,"parentCategoryId":2
},{
"categoryRoots":[
{
"id":3,"name":"Mädchen",{
"id":183,"parentCategoryId":3
}
],"id":183,"parentCategoryId":3
},{
"categoryRoots":[
{
"id":4,"name":"Jungen",{
"id":180,"parentCategoryId":4
}
],"id":180,"parentCategoryId":4
},{
"categoryRoots":[
{
"id":1,{
"id":376,"name":"Bekleidung","parentCategoryId":1
},{
"id":21,"name":"Fanshop","parentCategoryId":376
}
],"id":21,"parentCategoryId":376
},{
"id":411,"parentCategoryId":2
},{
"id":32,"parentCategoryId":411
}
],"id":32,"parentCategoryId":411
}
],"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":""
}
#---------- GrossenSerializer goes to the main object-------------#
class GrossenSerializer(serializers.Serializer):
artikelNr1 = serializers.IntegerField()
artikelNr2 = serializers.IntegerField()
artikelGr = serializers.IntegerField()
groessenText = serializers.CharField()
sku = serializers.CharField()
istZl = serializers.IntegerField()
verkPeriode = serializers.IntegerField()
#---------- rootsCategories goes to the Categries-------------#
class CategoriesRootsSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
parentCategoryId = serializers.IntegerField()
#---------- CategoriesSerializer goes to the main object-------------#
class CategoriesSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField(max_length=50)
parentCategoryId = serializers.IntegerField()
categoryRoots = CategoriesRootsSerializer(many=True,read_only=True)
#---------- main json object-------------#
class RecommendationjsonSerializer(serializers.Serializer):
sku = serializers.CharField(max_length=50)
artikelNr1 = serializers.IntegerField()
artikelNr2 = serializers.IntegerField()
StatusCode = serializers.IntegerField()
statusText = serializers.CharField(max_length=50)
SaisonRetourenCode = serializers.IntegerField()
saisonRetourenText = serializers.CharField(max_length=50)
saisonCode = serializers.IntegerField()
saisonText = serializers.CharField(max_length=50)
geschlechtCode = serializers.IntegerField()
geschlechtText = serializers.CharField(max_length=50)
RayonCode = serializers.IntegerField()
rayonText = serializers.CharField(max_length=50)
warenArtCode = serializers.IntegerField()
warenArtText = serializers.CharField(max_length=50)
wuCode = serializers.IntegerField()
wuText = serializers.CharField(max_length=50)
waCode = serializers.IntegerField()
warenGruppe = serializers.CharField(max_length=50)
alterCode = serializers.IntegerField()
farbe = serializers.CharField(max_length=50)
material = serializers.CharField(max_length=50)
bezeichnung = serializers.CharField(max_length=50)
pictureName = serializers.CharField(max_length=50)
picturePathLocal = serializers.CharField(max_length=50)
kollektion = serializers.CharField(max_length=50)
comCode = serializers.CharField(max_length=50)
lieferant = serializers.CharField(max_length=50)
eKchf = serializers.FloatField()
eti = serializers.FloatField()
vp = serializers.FloatField()
groessenCode = serializers.IntegerField()
groessen = GrossenSerializer(many=True,read_only=True)
zlQty = serializers.IntegerField()
productId = serializers.IntegerField()
published = serializers.BooleanField()
categories = CategoriesSerializer(many=True,read_only=True)
productName = serializers.CharField(max_length=50)
shortDescription = serializers.CharField(max_length=150)
fullDescription = serializers.CharField()
flag = serializers.CharField()
我的 serlizer 类就是这个 当我尝试针对有效运行此代码时,它会失败并给我这个错误
{''non_field_errors'': [ErrorDetail(string=''Invalid data. Expected a dictionary,but got list.'',code=''invalid'')]}
{''required'': ''This field is required.'',''null'': ''This field may not be null.'',''invalid'': ''Invalid data. Expected a dictionary,but got {datatype}.''}
解决方法
只需使用 Serializer fields 构建它。像这样:
,
from rest_framework import serializers
class CategoryRootSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
parentCategoryId = serializers.IntegerField()
class CategorySerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
parentCategoryId = serializers.IntegerField()
categoryRoots = CategoryRootSerializer(many=True,read_only=True)
class GroessenSerializer(serializers.Serializer):
artikelNr1 = serializers.IntegerField()
artikelNr2 = serializers.IntegerField()
artikelGr = serializers.IntegerField()
groessenText = serializers.CharField()
sku = serializers.CharField()
istZl = serializers.IntegerField()
verkPeriode = serializers.IntegerField()
class DataSerializer(serializers.Serializer):
artikelNr1 = serializers.IntegerField()
groessenCode = serializers.IntegerField()
zlQty = serializers.IntegerField()
productId = serializers.IntegerField()
published = serializers.BooleanField()
productName = serializers.CharField()
grossen = GroessenSerializer(many=True,read_only=True)
categories = CategorySerializer(many=True,read_only=True)
我稍微修改了你的序列化器,你可以用发布的 json 试试
class GrossenSerializer(serializers.Serializer):
artikelNr1 = serializers.IntegerField()
artikelNr2 = serializers.IntegerField()
artikelGr = serializers.IntegerField()
groessenText = serializers.CharField()
sku = serializers.CharField()
istZl = serializers.IntegerField()
verkPeriode = serializers.IntegerField()
def validate(self,attrs):
return super(GrossenSerializer,self).validate(attrs)
class CategoriesRootsSerializer(serializers.Serializer):
id = serializers.IntegerField()
name = serializers.CharField()
parentCategoryId = serializers.IntegerField()
def validate(self,attrs):
return super(CategoriesRootsSerializer,self).validate(attrs)
class CategoriesSerializer(serializers.Serializer):
id=serializers.IntegerField()
name=serializers.CharField(max_length=50)
parentCategoryId=serializers.IntegerField()
categoryRoots=serializers.ListField(
child=CategoriesRootsSerializer(many=True,read_only=True))
def validate(self,attrs):
return super(CategoriesSerializer,self).validate(attrs)
class RecommendationJsonSerializer(serializers.Serializer):
sku=serializers.CharField(max_length=50)
artikelNr1=serializers.IntegerField()
artikelNr2=serializers.IntegerField()
StatusCode=serializers.IntegerField(required=False)
statusText=serializers.CharField(max_length=50)
SaisonRetourenCode=serializers.IntegerField(required=False)
saisonRetourenText=serializers.CharField(max_length=50)
saisonCode=serializers.IntegerField()
saisonText=serializers.CharField(max_length=50)
geschlechtCode=serializers.IntegerField()
geschlechtText=serializers.CharField(max_length=50)
RayonCode=serializers.IntegerField(required=False)
rayonText=serializers.CharField(max_length=50)
warenArtCode=serializers.IntegerField()
warenArtText=serializers.CharField(max_length=50)
wuCode=serializers.IntegerField()
wuText=serializers.CharField(max_length=50)
waCode=serializers.IntegerField()
warenGruppe=serializers.CharField(max_length=50)
alterCode=serializers.IntegerField()
farbe=serializers.CharField(max_length=50)
material=serializers.CharField(max_length=50)
bezeichnung=serializers.CharField(max_length=50)
pictureName=serializers.CharField(max_length=50)
picturePathLocal=serializers.CharField(max_length=50)
kollektion=serializers.CharField(max_length=50,allow_blank=True)
comCode=serializers.CharField(max_length=50)
lieferant=serializers.CharField(max_length=50)
eKchf=serializers.FloatField()
eti=serializers.FloatField()
vp=serializers.FloatField()
groessenCode=serializers.IntegerField()
groessen=GrossenSerializer(many=True,read_only=True)
zlQty=serializers.IntegerField()
productId=serializers.IntegerField()
published=serializers.BooleanField()
categories=CategoriesSerializer(many=True,read_only=True)
productName=serializers.CharField(max_length=50)
shortDescription=serializers.CharField(max_length=150)
fullDescription=serializers.CharField()
flag=serializers.CharField(allow_blank=True)
def validate(self,attrs):
return super(RecommendationJsonSerializer,self).validate(attrs)
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 中嵌套 switch和php嵌套for循环格式的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于${} 中嵌套 ${}、Can''t locate Switch.pm in @INC (you may need to install the Switch module)、Django 中嵌套 Json 的序列化程序、Java 中的 switch 于 C# 中的 switch 的区别等相关内容,可以在本站寻找。
本文标签: