Для хранения в GCD я хочу использовать Google Cloud Datastore JSON API, но я не мог написать правильный объект запроса Json для объекта с другим членом класса. Рассмотрим У меня есть 2 классов:Как хранить класс с подклассом API Google Cloud Datastore JSON?
public class Foo {
private String id;
private Bar bar;
// getter and setter...
}
public class Bar {
private String name;
private String pass;
// getter and setter...
}
Затем я создаю объект класса «Foo», которые содержат объект класса «Бар». Так что я хочу вставить этот объект в Cloud Datastore. Я написал этот орган запроса:
{
"transaction":"some bytes",
"mutation":{
"insert":[
{
"key":{
"partitionId":{
"datasetId":"s~my-dataset-id"
},
"path":[
{
"kind":"Foo",
"name":"id"
}
]
},
"properties":{
"bar":{
"entityValue":{
"name":{
"stringValue":"Jack"
},
"pass":{
"stringValue":"1234"
}
},
"indexed":false
},
"id":{
"stringValue":"id"
}
}
}
]
}
}
Затем все поля, кроме «бара», будут сохраняться в облачном хранилище данных. Я использовал «entityValue», но кажется, что я должен включить всю структуру сущности (спасибо Адаму за это). Но мне это не нужно как другое сущность, и я не должен использовать «entityValue». Итак, как мне изменить тело запроса на вставку такого объекта?
Кстати, я могу вставить Bar объект (но не Foo) по следующему запросу:
{
"transaction":"some bytes",
"mutation":{
"insert":[
{
"key":{
"partitionId":{
"datasetId":"s~my-project-id"
},
"path":[
{
"kind":"Bar",
"name":"John"
}
]
},
"properties":{
"pass":{
"stringValue":"1234"
},
"name":{
"stringValue":"John"
}
}
}
]
}
}
Ваш запрос выглядит правильно. Получаете ли вы сообщение об ошибке при его выполнении? –
Когда я пытаюсь сохранить объекты класса Foo, ничего не сохраняется для встроенного объекта Bar. – Sadegh
Как вы извлекаете объект Bar? –