Ниже приведен пример данных JSON, которые я получаю в запросе вызова JS Ajax. Как я могу преобразовать это в JSON-LD и добавить в тег head
?
[
{
"resort": "100",
"resortCategory": "BEST",
"resortDistanceMiles": 37.1,
"resortDistanceKms": 59.7,
"currencySymbol": "$",
"resortAvailable": "AVAILABLE",
"resortSummary": {
"resort": "19100",
"latitude": 29.460099,
"longitude": -90.321457,
"timeZone": "America/New_York",
"name": "Best Western Isabelle Court",
"description": "Welcome to other!",
"address1": "17026 Highway 3235",
"city": "Galliano",
"phoneNumber": "+1 985-325-3800",
"faxNumber": "985/325-3808",
"postalCode": "70354",
"stateCode": "LA",
"state": "Louisiana",
"countryCode": "US",
"country": "United States",
"currencyCode": "USD",
"currencyDescription": "U.S. DOLLARS",
"resortCategory": "BEST",
"checkOutNoticeTime": "11:00 a.m.",
"checkInNoticeTime": "3:00 p.m.",
"propertyType": "INTOWN",
"prearrivalEmail": true
},
"searchableAmenities": [
{
"text": "Air Conditioning at property",
"attributeValueCode": "AIR CONDITIONING"
},
{
"text": "AIR CONDITIONED",
"attributeValueCode": "AIRCON"
},
{
"text": "AM/FM alarm clock",
"attributeValueCode": "ALRMCK"
},
{
"text": "Beach on premises or nearby",
"attributeValueCode": "BEACH"
},
{
"text": "Best Western",
"attributeValueCode": "BEST WESTERN"
},
{
"text": "Complimentary Breakfast",
"attributeValueCode": "BRKFST COMP"
},
{
"text": "Business center on premises (fax/copier/computer etc)",
"attributeValueCode": "BUSCTR"
},
{
"text": "Cable or satellite TV on premises.",
"attributeValueCode": "CABLE TV"
},
{
"text": "Guests that are 12 years old and younger are considered children.",
"attributeValueCode": "CHILD 12"
},
{
"text": "Coffee makers available in room.",
"attributeValueCode": "COFFEE MAKERS"
},
{
"text": "RJ-11 Modular/dataports phone jacks available in room.",
"attributeValueCode": "DATA PORT"
},
{
"text": "24 hour front desk",
"attributeValueCode": "DESK24"
},
{
"text": "Physically challenged facilities available",
"attributeValueCode": "DISABL"
},
{
"text": "Property has elevator access to floors.",
"attributeValueCode": "ELEVATOR"
},
{
"text": "Express checkout available",
"attributeValueCode": "EXCKOT"
},
{
"text": "Exercise facilities available on premises.",
"attributeValueCode": "EXERCISE"
},
{
"text": "Free parking available.",
"attributeValueCode": "FPRKNG"
},
{
"text": "Free local telephone calls",
"attributeValueCode": "FRCLLS"
},
{
"text": "Free Breakfast Offered at Property",
"attributeValueCode": "FREE BREAKFAST"
},
{
"text": "Free continental breakfast - Includes juice, bread or sweet roll, and coffee.",
"attributeValueCode": "FREE CONT. BRKFST"
},
{
"text": "All Guest Rooms are Hardwired or Wireless",
"attributeValueCode": "FRWL-HW-GUESTRM"
},
{
"text": "Free Wireless in Public Areas and Guest Rooms",
"attributeValueCode": "FRWL-PUBGUEST"
},
{
"text": "In-room hair dryers.",
"attributeValueCode": "HAIR DRYERS"
},
{
"text": "High Speed Internet Access",
"attributeValueCode": "HIGH SPEED"
},
{
"text": "Higher rates may apply for special events and holidays.",
"attributeValueCode": "HOLIDAY/EVENT RATES"
},
{
"text": "Inside Corridors",
"attributeValueCode": "INSIDE-CORR"
},
{
"text": "Irons and ironing boards available in room.",
"attributeValueCode": "IRONS/IRONING BOARDS"
},
{
"text": "Microwave oven in room.",
"attributeValueCode": "MICROWAVE"
},
{
"text": "Multi-lingual staff.",
"attributeValueCode": "MULTI-LINGUAL"
},
{
"text": "No pets allowed.",
"attributeValueCode": "NO PETS"
},
{
"text": "Non-smoking rooms are available.",
"attributeValueCode": "NO SMOKING"
},
{
"text": "Property entirely non-smoking",
"attributeValueCode": "NONSMOKING"
},
{
"text": "Packages are available.",
"attributeValueCode": "PACKAGE"
},
{
"text": "Refrigerators in rooms.",
"attributeValueCode": "REFRIGERATORS"
},
{
"text": "Suites at property with active rates",
"attributeValueCode": "SUITES"
}
],
"resortSearchRate": {
"resortRatePlan": "RACK",
"resortRateCode": "RACK",
"totalAmount": 129,
"resortRoomCategory": "2290273"
},
"tripAdvisor": {
"resort": "19100",
"medianUserRating": 4.0,
"reviewCount": 90,
"tripAdvisorId": 578901
},
"resortRestriction": ""
}
]
Я хочу использовать словарь schema.org.
Вы должны сопоставить свои свойства со свойствами Schema.org.
Кажется, ваши данные относятся к курорту, поэтому вы можете использовать тип Resort
. На этой странице типа перечислены все свойства, которые Resort
может иметь в Schema.org.
Например, ваш searchableAmenities
может быть сопоставлен с amenityFeature
Schema.org, где каждое значение имеет тип LocationFeatureSpecification
.
Для соответствующих свойств, которые невозможно сопоставить (поскольку Schema.org не имеет свойств для каждого случая), вы можете использовать additionalProperty
.
Есть два способа сопоставления:
Есть ли какая-либо библиотека js, которую я мог бы использовать, чтобы иметь данные выше json в качестве входных данных, отображать json + ld в качестве вывода? Если нет, есть ли какие-нибудь полезные примеры для сопоставления?
@Sri: Я не думаю, что это возможно автоматически сопоставить их. Можно было бы получить предложения для свойств с одинаковыми именами, но это, конечно, не удастся, если вы назовете что-то по-другому или если у вас есть свойства для одного и того же элемента, а Schema.org нужны подпункты (например, для адреса Resort
, Schema.org может потребоваться элемент PostalAddress
). - Для сопоставления вручную я описал в своем ответе, что вам нужно проверить, какие свойства Schema.org Resort
может иметь, а затем проверить, какие из них у вас тоже есть.
Когда вы добавили тег поисковая оптимизация, хотите ли вы использовать словарь Schema.org, и ваша цель состоит в том, чтобы претендовать на использование расширенных фрагментов на страницах результатов поисковой системы? Или вы просто хотите, чтобы ваши данные были доступны, не имея в виду конкретного потребителя или варианта использования?