as-json
as-json copied to clipboard
Deserializer skips objects in array
Hello
That large JSON couldn't be parsed correctly. It skips any element except one in menu.groups
array
Model
import {JSON} from "json-as/assembly";
@json
export class Name {
value!: string;
@alias("localized_value")
localizedValue!: string;
}
@json
export class Location {
value!: string;
@alias("localized_value")
localizedValue!: string;
}
@json
export class Coordinate {
lat!: f64;
lng!: f64;
}
@json
export class Distance {
value!: f64;
unit!: string;
@alias("unit_localized")
unitLocalized!: string;
}
@json
export class Cuisine {
id!: i64;
name!: string;
@alias("name_localized")
nameLocalized!: string;
}
@json
export class Currency {
id!: i64;
code!: string;
name!: string;
label!: string;
@alias("label_localized")
labelLocalized!: string;
position!: string;
decimals!: i32;
@alias("name_localized")
nameLocalized!: string;
}
@json
export class Rating {
average!: f32;
count!: i32;
state!: string;
@alias("count_text")
countText!: string;
}
@json
export class Scale {
value!: i32;
@alias("upper_bound")
upperBound!: i32;
}
@json
export class PriceRating {
average!: i32;
range!: string;
scale!: Scale;
}
@json
export class Term {
term!: string;
@alias("term_localized")
termLocalized!: string;
}
@json
export class TextAttribute {
@alias("attribute_name")
attributeName!: string;
value!: string;
@alias("value_localized")
valueLocalized!: string;
}
@json
export class Promotion {
id!: i64;
percentage!: i32;
@alias("total_percentage")
totalPercentage!: i32;
@alias("internal_subsidize")
internalSubsidize!: i32;
cap!: i32;
@alias("badge_type")
badgeType!: string;
value!: i32;
@alias("min_basket_value")
minBasketValue!: i32;
text!: string;
@alias("text_localized")
textLocalized!: string;
terms!: Array<Term> | null;
@alias("text_attributes")
textAttributes!: Array<TextAttribute> | null;
}
@json
export class MenuCurrency {
id!: i64;
code!: string;
name!: string;
label!: string;
@alias("label_localized")
labelLocalized!: string;
position!: string;
decimals!: i32;
@alias("name_localized")
nameLocalized!: string;
}
@json
export class Price {
original!: f64;
discount!: f64;
total!: f64;
@alias("discount_percentage")
discountPercentage!: i32;
}
@json
export class MenuGroupOption {
id!: i64;
item!: string;
@alias("item_localized")
itemLocalized!: string;
price!: Price;
groups!: Array<MenuGroup> | null;
@alias("is_active")
isActive: bool = true;
}
@json
export class MenuGroup {
id!: i64;
name!: string;
description!: string;
type!: string;
@alias("multi_select")
multiSelect!: boolean;
min!: i32;
max!: i32;
order!: i32;
active!: boolean;
@alias("name_localized")
nameLocalized!: string;
@alias("description_localized")
descriptionLocalized!: string;
options!: Array<MenuGroupOption> | null;
}
@json
export class OperationalShift {
@alias("start_time")
startTime!: string;
@alias("end_time")
endTime!: string;
}
@json
export class OperationalHours {
@alias("day_of_week")
dayOfWeek!: i32;
active!: boolean;
shifts!: Array<OperationalShift> | null;
}
@json
export class MenuItem {
id!: i64;
item!: string;
@alias("item_localized")
itemLocalized!: string;
link!: string;
@alias("superapp_link")
superappLink!: string;
@alias("image_url")
imageUrl!: string;
@alias("images_urls")
imagesUrls!: Array<string> | null;
description!: string;
@alias("description_localized")
descriptionLocalized!: string;
price!: Price;
active!: boolean;
order!: i32;
@alias("maximum_quantity")
maximumQuantity!: i32;
@alias("operational_hours")
operationalHours!: Array<OperationalHours> | null;
groups!: Array<MenuGroup> | null;
@alias("inactivity_reason")
inactivityReason!: string | null;
@alias("inactivity_text")
inactivityText!: string | null;
}
@json
export class MenuGroupItem {
id!: i64;
name!: string;
@alias("name_localized")
nameLocalized!: string;
active!: boolean;
@alias("image_url")
imageUrl!: string;
@alias("category_type")
categoryType!: string;
@alias("items_layout")
itemsLayout!: string;
items: Array<MenuItem> | null = [];
}
@json
export class Menu {
id!: i64;
currency!: MenuCurrency;
active!: boolean;
groups!: Array<MenuGroupItem> | null;
}
@json
export class Delivery {
@alias("delivery_method")
deliveryMethod!: string;
@alias("delivery_type")
deliveryType!: string;
average!: i32;
range!: string;
unit!: string;
@alias("unit_localized")
unitLocalized!: string;
source!: string;
@alias("careem_delivery_fee")
careemDeliveryFee!: i32;
@alias("is_careem_delivery_supported")
isCareemDeliverySupported!: boolean;
fee!: i32;
@alias("distance_in_km")
distanceInKm!: f64;
@alias("color_state")
colorState!: string;
}
@json
export class Tag {
id!: i64;
name!: string;
link!: string;
global!: boolean;
@alias("name_localized")
nameLocalized!: string;
}
@json
export class Brand {
id!: i64;
name!: string;
count!: i32;
@alias("brand_media")
brandMedia!: Array<string> | null;
@alias("name_localized")
nameLocalized!: string;
}
@json
export class OrderCount {
count!: i32;
max!: i32;
since!: i32;
ratio!: f32;
}
@json
export class MerchantSubText {
type!: string;
text!: string;
}
@json
export class AvailabilityDetails {
@alias("is_available")
isAvailable!: boolean;
}
@json
export class Restaurant {
@alias("id")
merchantID!: i64;
@alias("merchant_type")
merchantType!: string;
name!: Name;
location!: Location;
coordinate!: Coordinate;
distance!: Distance;
cuisines!: Array<Cuisine> | null;
currency!: Currency;
rating!: Rating;
price!: PriceRating;
@alias("preparation_time")
preparationTime!: i32;
promotions!: Array<Promotion> | null;
link!: string;
menu!: Menu;
@alias("superapp_link")
superappLink!: string;
@alias("image_url")
imageUrl!: string;
@alias("logo_url")
logoUrl!: string;
@alias("min_order")
minOrder!: i32;
delivery!: Delivery;
@alias("has_items")
hasItems!: boolean;
tags!: Array<Tag>;
@alias("include_tax")
includeTax!: boolean;
@alias("contract_id")
contractid!: i64;
@alias("included_tax")
includedTax!: i32;
@alias("business_type")
businessType!: string;
@alias("menu_layout")
menuLayout!: string;
@alias("item_count")
itemCount!: i32;
@alias("delivery_zones")
deliveryZones!: Array<string> | null;
@alias("food_zones_enabled")
foodZonesEnabled!: boolean;
brand!: Brand;
@alias("brand_id")
brandId!: i64;
@alias("is_new")
isNew!: boolean;
@alias("order_count")
orderCount!: OrderCount;
@alias("merchant_sub_text")
merchantSubText!: Array<MerchantSubText> | null;
@alias("availability_details")
availabilityDetails!: AvailabilityDetails;
@alias("customer_name")
customerName!: string;
}