将JSON嵌套到R中的数据帧

将JSON嵌套到R中的数据帧,json,r,dataframe,Json,R,Dataframe,我有几个JSON输入,如下所示 输入1: {"booking":{"id":"54092","createdOn":"2016-10-06T06:29:00.0000000+0000","bookingDateTime":"2016-10-08T06:45:00.0000000+0000","checkInDateTime":null,"checkOutDateTime":null,"tableNumbers":null,"pax":3,"type":"calling","status":"bo

我有几个JSON输入,如下所示

输入1:

{"booking":{"id":"54092","createdOn":"2016-10-06T06:29:00.0000000+0000","bookingDateTime":"2016-10-08T06:45:00.0000000+0000","checkInDateTime":null,"checkOutDateTime":null,"tableNumbers":null,"pax":3,"type":"calling","status":"booked","source":"concierge","specialInstruction":"test hoppi","outlet":{"id":"46a97c2e-c921-4339-819c-50e17f25d09a","name":"Hoppipolla"},"customer":{"name":"Hoppi","email":"hoppi@xmail.com","countryCallingCode":"91","phone":"8901234567"}},"eventType":"booked","serverDateTime":"2016-10-06T06:28:25.0000558+0000"}

{"booking":{"id":"54093","createdOn":"2016-10-06T06:30:00.0000000+0000","bookingDateTime":"2016-10-08T06:46:00.0000000+0000","checkInDateTime":null,"checkOutDateTime":null,"tableNumbers":null,"pax":3,"type":"calling","status":"booked","source":"concierge","specialInstruction":"test hoppi","outlet":{"id":"46a97c2e-c922-4339-819c-50e17f25d09a","name":"Hoppipolla"},"customer":{"name":"Ravi","email":"ravi@xmail.com","countryCallingCode":"91","phone":"8901234548"}},"eventType":"booked","serverDateTime":"2016-10-06T06:28:25.0000558+0000"}
输入2:

{"feedback":{"dateTime":"2016-10-06T09:24:05.0000730+0000","customerName":"mytestdevcog","averageRating":4,"isNegativeByComments":false,"outlet":{"id":"f9e9c21f-2e52-462e-a1f2-012dab216d27","name":"cholan 's Darbar"},"customer":{"name":"mytestdevcog","email":"mytestdevcog123@gmail.com","countryCallingCode":"91","phone":"7895478745"},"responses":[{"question":"Was your waiting time too long?","response":"No","questionType":"yes_no"},{"question":"Service","response":"3","questionType":"rating"},{"question":"desserts","response":"4","questionType":"rating"},{"question":"Comments","response":"good","questionType":"short_answer"},{"question":"How likely is it that you would recommend us to a friend or colleague?","response":"5","questionType":"nps"},{"question":"Portion Size","response":"5","questionType":"rating"},{"question":"Indian Food","response":"4","questionType":"rating"},{"question":"Desert spread","response":"4","questionType":"rating"}]},"serverDateTime":"2016-10-06T09:24:27.0000644+0000"}

{"feedback":{"dateTime":"2016-10-06T09:24:05.0000730+0000","customerName":"mytestdevcog","averageRating":4,"isNegativeByComments":false,"outlet":{"id":"f9e9c21f-2e52-462e-a1f2-012dab216d27","name":"cholan 's Darbar"},"customer":{"name":"mytestdevcog","email":"mytestdevcog123@gmail.com","countryCallingCode":"91","phone":"7895478745"},"responses":[{"question":"Was your waiting time too long?","response":"No","questionType":"yes_no"},{"question":"Service","response":"3","questionType":"rating"},{"question":"desserts","response":"4","questionType":"rating"},{"question":"Comments","response":"good","questionType":"short_answer"},{"question":"How likely is it that you would recommend us to a friend or colleague?","response":"5","questionType":"nps"},{"question":"Portion Size","response":"5","questionType":"rating"},{"question":"Indian Food","response":"4","questionType":"rating"},{"question":"Desert spread","response":"4","questionType":"rating"}]},"serverDateTime":"2016-10-06T09:24:27.0000644+0000"}

两个输入需要两个独立的数据帧。如何在R中实现这一点?

正如评论中正确指出的,您的json包含一个错误。第三个和第四个字符串实际上包含“cholan's darbar”,必须先对其进行转义,然后才能将其解析为json

为了回答您的问题(关于获取两个数据集),我直接更正了字符串。以下是如何做到这一点:

library(jsonlite)

s1 <- '{"booking":{"id":"54092","createdOn":"2016-10-06T06:29:00.0000000+0000","bookingDateTime":"2016-10-08T06:45:00.0000000+0000","checkInDateTime":null,"checkOutDateTime":null,"tableNumbers":null,"pax":3,"type":"calling","status":"booked","source":"concierge","specialInstruction":"test hoppi","outlet":{"id":"46a97c2e-c921-4339-819c-50e17f25d09a","name":"Hoppipolla"},"customer":{"name":"Hoppi","email":"hoppi@xmail.com","countryCallingCode":"91","phone":"8901234567"}},"eventType":"booked","serverDateTime":"2016-10-06T06:28:25.0000558+0000"}'

s2 <- '{"booking":{"id":"54093","createdOn":"2016-10-06T06:30:00.0000000+0000","bookingDateTime":"2016-10-08T06:46:00.0000000+0000","checkInDateTime":null,"checkOutDateTime":null,"tableNumbers":null,"pax":3,"type":"calling","status":"booked","source":"concierge","specialInstruction":"test hoppi","outlet":{"id":"46a97c2e-c922-4339-819c-50e17f25d09a","name":"Hoppipolla"},"customer":{"name":"Ravi","email":"ravi@xmail.com","countryCallingCode":"91","phone":"8901234548"}},"eventType":"booked","serverDateTime":"2016-10-06T06:28:25.0000558+0000"}'
library(jsonlite)

s1请先编辑json输入数据。它看起来很奇怪。
jsonlite::fromJSON(input1)
。但是,您需要使输入有效。您最好直接从源代码读入我们的JSON已经揭开了PII的面纱。
s3 <- '{"feedback":{"dateTime":"2016-10-06T09:24:05.0000730+0000","customerName":"mytestdevcog","averageRating":4,"isNegativeByComments":false,"outlet":{"id":"f9e9c21f-2e52-462e-a1f2-012dab216d27","name":"cholan \'s Darbar"},"customer":{"name":"mytestdevcog","email":"mytestdevcog123@gmail.com","countryCallingCode":"91","phone":"7895478745"},"responses":[{"question":"Was your waiting time too long?","response":"No","questionType":"yes_no"},{"question":"Service","response":"3","questionType":"rating"},{"question":"desserts","response":"4","questionType":"rating"},{"question":"Comments","response":"good","questionType":"short_answer"},{"question":"How likely is it that you would recommend us to a friend or colleague?","response":"5","questionType":"nps"},{"question":"Portion Size","response":"5","questionType":"rating"},{"question":"Indian Food","response":"4","questionType":"rating"},{"question":"Desert spread","response":"4","questionType":"rating"}]},"serverDateTime":"2016-10-06T09:24:27.0000644+0000"}'

s4 <- '{"feedback":{"dateTime":"2016-10-06T09:24:05.0000730+0000","customerName":"mytestdevcog","averageRating":4,"isNegativeByComments":false,"outlet":{"id":"f9e9c21f-2e52-462e-a1f2-012dab216d27","name":"cholan \'s Darbar"},"customer":{"name":"mytestdevcog","email":"mytestdevcog123@gmail.com","countryCallingCode":"91","phone":"7895478745"},"responses":[{"question":"Was your waiting time too long?","response":"No","questionType":"yes_no"},{"question":"Service","response":"3","questionType":"rating"},{"question":"desserts","response":"4","questionType":"rating"},{"question":"Comments","response":"good","questionType":"short_answer"},{"question":"How likely is it that you would recommend us to a friend or colleague?","response":"5","questionType":"nps"},{"question":"Portion Size","response":"5","questionType":"rating"},{"question":"Indian Food","response":"4","questionType":"rating"},{"question":"Desert spread","response":"4","questionType":"rating"}]},"serverDateTime":"2016-10-06T09:24:27.0000644+0000"}'


j1 <- fromJSON(s1)
j2 <- fromJSON(s2)
j3 <- fromJSON(s3)
j4 <- fromJSON(s4)

rbind(j1, j2)

rbind(j3, j4)