LOCAL hMain, hFamily, hWho
hMain := {=>}
hFamily := {=>}
hWho := {=>}
hWho["money"] := 35
hb_Hset( hFamily, "Emy", hWho ) // hFamily["Emy"] := hWho
hWho := {=>}
hWho["money"] := 25
hb_Hset( hFamily, "Evy", hWho ) // hFamily["Evy"] := hWho
hWho := {=>}
hWho["money"] := 15
hb_Hset( hFamily, "Ely", hWho ) // hFamily["Ely"] := hWho
hb_Hset( hMain, "female", hFamily ) // hMain["female"] := hFamily
hFamily := {=>}
hWho := {=>}
hWho["money"] := 10
hb_Hset( hFamily, "Huey", hWho ) // hFamily["Huey"] := hWho
hWho := {=>}
hWho["money"] := 5
hb_Hset( hFamily, "Dewey", hWho ) // hFamily["Dewey"] := hWho
hWho := {=>}
hWho["money"] := 0
hb_Hset( hFamily, "Louie", hWho ) // hFamily["Louie"] := hWho
hb_Hset( hMain, "male", hFamily ) // hMain["male"] := hFamily
hb_MemoWrit( "list", hb_JsonEncode( hMain, 3, /*cCodePage )*/ ) )
Fiz um teste assim, e dá o mesmo resultado
PROCEDURE Main
LOCAL a, b, c
WITH OBJECT a := hb_Hash()
WITH OBJECT b := a[ "female" ] := hb_Hash()
WITH OBJECT c := b[ "Emy" ] := hb_Hash()
c[ "money" ] := 25
ENDWITH
WITH OBJECT c := b[ "Evy" ] := hb_Hash()
c[ "money" ] := 25
ENDWITH
WITH OBJECT c := b[ "Ely" ] := hb_Hash()
c[ "money" ] := 15
ENDWITH
ENDWITH
WITH OBJECT b := a[ "male" ] := hb_Hash()
WITH OBJECT c := b[ "Huey" ] := hb_Hash()
c[ "money" ] := 10
ENDWITH
WITH OBJECT c := b[ "Dewey" ] := hb_Hash()
c[ "money" ] := 5
ENDWITH
WITH OBJECT c := b[ "Louie" ] := hb_Hash()
c[ "money" ] := 0
ENDWITH
ENDWITH
ENDWITH
hb_MemoWrit( "list2", hb_JsonEncode( a, 3 ) )
RETURN
O resultado nos dois casos é este:
{
"female":
{
"Emy":
{
"money": 25
},
"Evy":
{
"money": 25
},
"Ely":
{
"money": 15
}
},
"male":
{
"Huey":
{
"money": 10
},
"Dewey":
{
"money": 5
},
"Louie":
{
"money": 0
}
}
}
Apenas estou mostrando.
Não uso isso, apenas fiz o teste de curioso pra ver se dava certo.
Se algum dia precisar, já fica anotado aqui.... rs