@@ -986,17 +986,67 @@ func (n *NutritionSchema) UnmarshalJSON(data []byte) error {
986
986
987
987
switch x := v .(type ) {
988
988
case map [string ]any :
989
- n .Calories = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["calories" ]), "," , "." ))
990
- n .Carbohydrates = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["carbohydrateContent" ]), "," , "." ))
991
- n .Cholesterol = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["cholesterolContent" ]), "," , "." ))
992
- n .Fat = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["fatContent" ]), "," , "." ))
993
- n .SaturatedFat = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["saturatedFatContent" ]), "," , "." ))
994
- n .UnsaturatedFat = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["unsaturatedFatContent" ]), "," , "." ))
995
- n .TransFat = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["transFatContent" ]), "," , "." ))
996
- n .Protein = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["proteinContent" ]), "," , "." ))
997
- n .Sugar = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["sugarContent" ]), "," , "." ))
998
- n .Sodium = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["sodiumContent" ]), "," , "." ))
999
- n .Fiber = regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x ["fiberContent" ]), "," , "." ))
989
+ extract := func (nutrition string ) string {
990
+ return regex .Digit .FindString (strings .ReplaceAll (extensions .ConvertToString (x [nutrition ]), "," , "." ))
991
+ }
992
+
993
+ if _ , ok := x ["calories" ]; ok {
994
+ n .Calories = extract ("calories" )
995
+ }
996
+
997
+ if _ , ok := x ["carbohydrateContent" ]; ok {
998
+ n .Carbohydrates = extract ("carbohydrateContent" )
999
+ } else if _ , ok = x ["carbs" ]; ok {
1000
+ n .Carbohydrates = extract ("carbs" )
1001
+ }
1002
+
1003
+ if _ , ok := x ["cholesterolContent" ]; ok {
1004
+ n .Cholesterol = extract ("cholesterolContent" )
1005
+ }
1006
+
1007
+ if _ , ok := x ["fatContent" ]; ok {
1008
+ n .Fat = extract ("fatContent" )
1009
+ } else if _ , ok = x ["fat" ]; ok {
1010
+ n .Fat = extract ("fat" )
1011
+ }
1012
+
1013
+ if _ , ok := x ["saturatedFatContent" ]; ok {
1014
+ n .SaturatedFat = extract ("saturatedFatContent" )
1015
+ } else if _ , ok = x ["saturatedFat" ]; ok {
1016
+ n .SaturatedFat = extract ("saturatedFat" )
1017
+ }
1018
+
1019
+ if _ , ok := x ["unsaturatedFatContent" ]; ok {
1020
+ n .UnsaturatedFat = extract ("unsaturatedFatContent" )
1021
+ }
1022
+
1023
+ if _ , ok := x ["transFatContent" ]; ok {
1024
+ n .TransFat = extract ("transFatContent" )
1025
+ }
1026
+
1027
+ if _ , ok := x ["proteinContent" ]; ok {
1028
+ n .Protein = extract ("proteinContent" )
1029
+ } else if _ , ok = x ["protein" ]; ok {
1030
+ n .Protein = extract ("protein" )
1031
+ }
1032
+
1033
+ if _ , ok := x ["sugarContent" ]; ok {
1034
+ n .Sugar = extract ("sugarContent" )
1035
+ } else if _ , ok = x ["sugars" ]; ok {
1036
+ n .Sugar = extract ("sugars" )
1037
+ }
1038
+
1039
+ if _ , ok := x ["sodiumContent" ]; ok {
1040
+ n .Sodium = extract ("sodiumContent" )
1041
+ } else if _ , ok = x ["salt" ]; ok {
1042
+ n .Sodium = extract ("salt" )
1043
+ }
1044
+
1045
+ if _ , ok := x ["fiberContent" ]; ok {
1046
+ n .Fiber = extract ("fiberContent" )
1047
+ } else if _ , ok = x ["fibre" ]; ok {
1048
+ n .Fiber = extract ("fibre" )
1049
+ }
1000
1050
1001
1051
if val := extensions .ConvertToString (x ["servingSize" ]); val != "" {
1002
1052
xs := strings .Split (val , " " )
0 commit comments