The thief, a 19-year-old friend of the family, confessed to the theft soon after, wrote the Aftonbladet newspaper.
It is alleged that he sold the majority of the jewels for 9,000 kronor to two marijuana dealers.
He also reportedly threw a tiara worth 350,000 kronor off a Stockholm bridge into the water below.
The jewellery belonged to Princess Christina, the 68-year-old youngest sister of Sweden’s King Carl XVI Gustaf.
The collection contained treasures inherited from her mother, Princess Sibylla, and Gustav VI Adolf, the previous king of Sweden.
It is alleged that the contents also included golden rings and bracelets, as well as gifts from the ex-emperor of Ethiopia – Haile Selassie.
The discovery of the missing treasure was made by Tord Magnuson, the husband of the princess.
When Magnuson confronted the teenager, the 19-year-old confessed to the crime immediately, wrote the paper.
The 19-year-old also told how he stole the 350,000 kronor tiara back in mid-May during a party at the palace, and then threw it into the water off the Riksbron Bridge in Stockholm.
Divers on Wednesday searched for the sunken jewels to no avail, with Aftonbladet reporting that only wallets, false teeth and one eel have been found so far.
The 19-year-old, who came to Sweden as a refugee in 2010, had lived with the royal couple, and Magnuson had acted as his mentor.
The two became close friends, with Princess Christina even referring to the man as “the child of the house”.
It is alleged that he stole the key to the safe back in April and planned to blame the housecleaner for the thefts.
Charges of aggravated theft have been filed against the man.
The 19-year-old has given descriptions to police of the two men who bought the jewels, but neither has been identified as yet.