2012-12-07 4 views
5

Mam dwie struktury (New i DailyPrediction) z DailyPrediction struktury jako jednego podmiotu z New struktury:Jak przechowywać struct wewnątrz struktury w go?

type New struct { 
    Id string 
    DailyPrediction 
} 

type DailyPrediction struct { 
    Prediction string 
} 

jestem w stanie odczytać (lub) Napisz nową strukturę w magazynie danych. Byłoby pomocne, gdyby ktoś mi w tym pomógł.

+0

Datastore? Może datastore App Engine? Jeśli tak, to pomogłoby to w tagowaniu zapytania google-app-engine lub gae-datastore. – Sonia

+0

Usunąłem tag mechanizmu aplikacji, ponieważ pytanie nie jest bezpośrednio związane z mechanizmem aplikacji. Może źle odczytałem pytanie? –

Odpowiedz

1

Nie jest jasne do mnie z pytaniem, co dokładnie robisz ze struktury, w jaki sposób się to niepowodzeniem. Jednak podczas osadzania struktury DailyPrediction w nowej strukturze, nie nadając jej nazwy, musi ona zostać zainicjowana. Można zobaczyć szczegóły, jak to zrobić tutaj: http://golang.org/doc/effective_go.html#embedding

Na przykład, aby zainicjować nową struct, można użyć linię:

n := New{"foo", DailyPrediction{"bar"}} 

Czy to może być to, czego brakuje?

+0

Wielkie dzięki ... Nie było jasne w pytaniu, które napisałem. W rzeczywistości tworzę tę strukturę, aby utworzyć Json i zapisać go w magazynie danych. Struktura Json powinna wyglądać tak: {"Id": "20122403", "Dailypred": {"Prediction": "ABCD"}}. Problem podczas czytania JSON jest to, że generuje błąd - „SAVE datastore: nieobsługiwany typ pola struct: pcg_new.DailyPrediction” .. proszę o pomoc w tej – Raj

+0

Właśnie zrobił następujący: var jsonBlob = [] bajt ('{" id ":" meemaw "," Prediction ":" Moonpie "}'), i który z powodzeniem został unmarshalled do struktury, którą utworzyłem, gdzie struktura DailyPrediction zawiera ciąg Przewidywanie. Czy tego właśnie szukasz? – Derek

+0

Nieważne, widzę, że problem nie polegał na tym, żeby json to przeczytał, ale aby go zapisać. Wygląda na to, że odpowiedź @alfazero jest bardziej trafna, że ​​nie jest to obsługiwane. – Derek

1

Not supported przez AppEngine.

+0

Jest obsługiwany przez aparat aplikacji, w tym sensie, że możesz to zrobić samodzielnie, biblioteki nie zajmują się tym. Musisz zaimplementować interfejs i spłaszczyć. – Ali