JSON-LD Create Single Review for Person - json

How would you go about creating a review for a person? For instance if a user, submitted a review that provided both a rating and an associated bit of information about a person's/service provider's quality of service... how should that be coded using JSON-LD? I think the code below is how you would correctly accomplish this but I'm not completely certain. If you have any suggestions, please include code with your input to provide maximum clarity.
Please keep in mind the code below is not for a page that lists all of the ratings but rather a single page that displays only this rating.
Person/Service Single Review:
<script type="application/ld+json">
{
"#context": "http://schema.org/",
"#type": "Review",
"itemReviewed": {
"#type": "Person",
"name": "John Smith", // Person being reviewd
},
"reviewRating": {
"#type": "Rating",
"bestRating": "5",
"ratingValue": "3",
"worstRating": "1"
}
"name": "Excellent Service!",
"author": {
"#type": "Person",
"name": "Bob Smith"
},
"reviewBody": "John provided excellent service!"
}
</script>
Ref: https://developers.google.com/structured-data/rich-snippets/reviews

Apart from the comment and two comma errors this is valid JSON-LD. I wouldn't expect this to show up as a rich snippet though. The page you referenced lists the entitz types for which reviews are supported: "We support reviews and ratings for a wide range of schema.org types, including businesses, products, and different creative works such as books or movies." If possible, I would thus associate the Review to a Service instead (the person can be made the provider of the service).
Here's the snippets with the two minor syntactic issues fixed:
<script type="application/ld+json">
{
"#context": "http://schema.org/",
"#type": "Review",
"itemReviewed": {
"#type": "Person",
"name": "John Smith"
},
"reviewRating": {
"#type": "Rating",
"bestRating": "5",
"ratingValue": "3",
"worstRating": "1"
},
"name": "Excellent Service!",
"author": {
"#type": "Person",
"name": "Bob Smith"
},
"reviewBody": "John provided excellent service!"
}
</script>

Related

Reservation (LodgingReservation) - Calendar showing different name/address (correct in GMail SmartCard)

We are using the Hotel Reservation Schema and all the information is showing correctly in the Gmail SmartCard view (top of email), however looking at the generated Calendar event, the name and address for the stay shown is not correct.
The Email Markup Tester Tool validates correctly.
<script type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "LodgingReservation",
"reservationNumber": "12345",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"#type": "Person",
"name": "Test Person"
},
"reservationFor": {
"#type": "LodgingBusiness",
"name": "The Property Name",
"address": {
"#type": "PostalAddress",
"streetAddress": "123 Fake Street",
"addressLocality": "Property City",
"addressRegion": "NC",
"postalCode": "28469",
"addressCountry": "US"
},
"telephone": "866-555-5555"
},
"checkinDate": "2022-09-24T16:00:00-08:00",
"checkoutDate": "2022-09-27T11:00:00-08:00",
"modifiedTime": "2022-09-19 09:09:04",
"modifyReservationUrl": "hxxps://valid.link.to.lodging.property"
}
</script>
Is there other markup that is needed in the email so the event that was automatically created from the email has the correct information (while maintaining it as a lodging reservation)?
Where does the calendar event name/address pull from by default? What is used for the "LodgingBusiness" schema on the website (not passed in the email) is not what is showing in the calendar event either.
Thanks.

"JSON-LD Missing ',' or ']' in array declaration." but the code is the same

I have a blog where we add Schema to each post and what works perfectly and is validated by the SDTT then breaks on a new blog despite the only things changing is the content. I feel like I have been staring at the same 20 lines for hours. Can anyone see what might be different between these two.
Working Structured Data:
<script type="application/ld+json">// <![CDATA[
{
"#context": "https://schema.org",
"#type": "NewsArticle",
"mainEntityOfPage": {
"#type": "WebPage",
"#id": "https://blog.realmanage.com/announcements/for-the-4th-time-in-five-years-realmanage-appears-on-the-inc.-5000"
},
"headline": "For the 4th time in Five Years, RealManage Appears on the Inc.5000",
"image": ["https://blog.realmanage.com/hubfs/Inc%20Announcement.png"
],
"datePublished": "2020-08-31T10:10:00+08:00",
"dateModified": "2020-08-28T02:24:00+08:00",
"author": {
"#type": "Person",
"name": "Amanda Causey"
},
"publisher": {
"#type": "Organization",
"name": "RealManage",
"logo": {
"#type": "ImageObject",
"url": "https://www.realmanage.com/hs-fs/hubfs/Logo/RealManage_Logo_1.png?width=1324&name=RealManage_Logo_1.png"
}
},
"description": "Inc. magazine today revealed that RealManage is No. 4646 on its annual Inc. 5000 list, the most prestigious ranking of the nation’s fastest-growing private companies. The list represents a unique look at the most successful companies within the American economy’s most dynamic segment—its independent small businesses. Intuit, Zappos, Under Armour, Microsoft, Patagonia, and many other well-known names gained their first national exposure as honorees on the Inc. 5000."
}
// ]]>
</script>
Non-working code:
<script type="application/ld+json">// <![CDATA[
{
"#context": "https://schema.org",
"#type": "NewsArticle",
"mainEntityOfPage": {
"#type": "WebPage",
"#id": "https://blog.realmanage.com/creating-a-maintenance-chart-for-your-association-realmanage"
},
"headline": "Creating a Maintenance Chart for Your Association - RealManage",
"image": [
"https://f.hubspotusercontent20.net/hubfs/1849073/AdobeStock_396601443.jpeg”
],
"datePublished": "2021-06-08T09:38:00+08:00",
"dateModified": "2021-06-08T09:38:00+08:00",
"author": {
"#type": "Person",
"name": "Katie Vaughan"
},
"publisher": {
"#type": "Organization",
"name": "RealManage",
"logo": {
"#type": "ImageObject",
"url": "https://www.realmanage.com/hs-fs/hubfs/Logo/RealManage_Logo_1.png"
}
},
"description": "When it comes down to who pays, the smallest dispute can blow into a neighborhood disaster.”
}
// ]]></script>
The problem is that the quote after 396601443.jpeg” is not a standard " but a ”, like those Microsoft Word uses to make a text nicer. And there's another one closer to the end, after "disaster".
Bt the way, you can paste the JSON here and validate it.

Google JSON Review Snippet not validating

I'm using the following JSON to produce a review snippet:
<script type="application/ld+json">
{
"#context": "https://schema.org/",
"#type": "Review",
"name": "Great service from the start.",
"author": {
"#type": "Person",
"name": "Chris Tonich"
},
"reviewBody": "Very thorough...would highly recommend!",
"aggregateRating": {
"#type": "AggregateRating",
"ratingValue": "4.9",
"bestRating": "5",
"ratingCount": "110",
"itemReviewed": {
"#type": "Product",
"image": "https://www.homeintegrity.com.au/wp-content/uploads/2020/12/hi-new-logo2.jpg",
"name": "Pre-Purchase Building Inspections",
"priceRange": "$$",
"telephone": "08 8375 8130",
"address" :{
"#type": "PostalAddress",
"streetAddress": "PO Box 163",
"addressLocality": "Scarborough",
"addressRegion": "WA",
"postalCode": "6019",
"addressCountry": "AU"
}
}
}
}
</script>
The Google Rich Snippet Test says:
Why am I receiving the error when the Review contains aggregateRating which contains itemReviewed?
Why does it say I rated a Review rather than an Item?
Help appreciated.
Your structure is not according to the schema found on https://schema.org/
A Review must contain a field itemReviewed (or be embedded in the object, which is reviewed). (see examples at https://schema.org/Review)
A Review on the other hand must not contain an AggregateRating (see https://schema.org/AggregateRating), because an AggreateRating may only be a sub-node of a Brand, CreativeWork, Event, Offer, Organization, Place, Product, or Service. Note that these types may contain a Review too.
Your structure roughly is as follows:
Review "Great service from the start."
Author "Chris Tonich"
Aggregate rating "4.9"
Product "Pre-Purchase Building Inspections"
Address "6019 - ..."
What you probably want is something along the lines of:
LocalBusiness "Pre-Purchase Building Inspections"
Address "6019 - ..."
Review "Great service from the start."
Author "Chris Tonich"
Aggregate rating "4.9"

I am having an error in Json schema markup for Google indexing for SERP starts

I am setting up schema for rating stars to show up on google search results, I got this json script, It does not have any error when I test the code snippet, But shows an error :
Missing '}' or object member name.
<script type=application/ld+json>{
"#context": "https://schema.org/",
"#type": "Review",
"itemReviewed": {
"#type": "LocalBusiness",
"image": "https://www.rmsdrill.com/wp-content/uploads/2019/01/RMS-Logo-header.png",
"name": "Rms Drill",</p>
<p> "telephone": "(800) 605-1608",
"address" :{
"#type": "PostalAddress",</p>
<p> "addressLocality": "Dallas",
"addressRegion": "TX",
"postalCode": "75219",
"addressCountry": "US"
}
},
"reviewRating": {
"#type": "Rating",
"ratingValue": "4"
},
"name": "Working with Rober Strunks.",
"author": {
"#type": "Person",
"name": "Dr. Jason Kihle"
},
"reviewBody": "After just one season of working with Robert Strunks, it is absolutely clear that he is everything that you want in a professional marching band drill designer. In addition…",
"publisher": {
"#type": "Organization",
"name": "RMS Drill"
}
}</script>
In the future, use this: https://jsonformatter.curiousconcept.com/
{
"#context":"https://schema.org/",
"#type":"Review",
"itemReviewed":{
"#type":"LocalBusiness",
"image":"https://www.rmsdrill.com/wp-content/uploads/2019/01/RMS-Logo-header.png",
"name":"Rms Drill",
"telephone":"(800) 605-1608",
"address":{
"#type":"PostalAddress",
"addressLocality":"Dallas",
"addressRegion":"TX",
"postalCode":"75219",
"addressCountry":"US"
}
},
"reviewRating":{
"#type":"Rating",
"ratingValue":"4"
},
"name":"Working with Rober Strunks.",
"author":{
"#type":"Person",
"name":"Dr. Jason Kihle"
},
"reviewBody":"After just one season of working with Robert Strunks, it is absolutely clear that he is everything that you want in a professional marching band drill designer. In addition…",
"publisher":{
"#type":"Organization",
"name":"RMS Drill"
}
}

lJSON-LD Syntax error: value, object or array expected

I am just trying to get our events onto google using markup and I am fairly new to all of this so I hope someone can help I have just checked the following and got the error above
<script type="application/ld+json">
{
"#context": "https://schema.org",
"#type": "Event",
"name": “Staunton Harold Sportive”,
"startDate": "2019-05-26T08:00",
"endDate": "2019-05-26T17:00",
"location": {
"#type": "Place",
"name": “Staunton Harold Hall”,
"address": {
"#type": "PostalAddress",
"streetAddress": “Melbourne Road”,
"addressLocality": “Ashby De la Zouch“,
"postalCode": "LE65 1RT",
"addressRegion": “Derbyshire”,
"addressCountry": "UK”
}
},
"image": [
"https://static.wixstatic.com/media/36c4d1_84383c3423f0429b8fe7988a0382dbb0~mv2_d_3905_2194_s_2.png/v1/fill/w_1084,h_608,al_c,usm_0.66_1.00_0.01/Staunton%20Harold%20sportive.png",
],
"description": " 
Fun - 14K
Short - 40K
Medium - 100K
Long - 160K The Staunton Harold Sportive starts from the privately owned, estate in the stunning surroundings of Staunton Harold Hall  estate, providing the perfect backdrop for a fun and enjoyable bike ride.",
"offers": {
"#type": "Offer",
"url": "https://www.triathlon-events.com/staunton-harold-sportive",
"price": “20",
"priceCurrency": “GBP”,
"availability": "https://schema.org/InStock",
"validFrom": "2018-05-26T16:00"
},
“Organizer”: {
"#type": “Organizer”,
"name": “Choose Sports Ltd”
}
}
</script>
It could be because you have curly quotation marks in places instead of straight ones e.g. “Staunton Harold Sportive” needs to have the straight quotations marks as used in "https://schema.org". I'd start by swapping those out and retest. Hope that helps.