<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 11 Jan 2014, at 18:46, Marco Olimpi <<a href="mailto:badstorm@gmail.com">badstorm@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi, </div></blockquote><div><br></div><div>Ciao.</div><div>Non so perché tu abbia postato in Inglese (forse mero copia incolla da un post in altra lista), ma leggendo l'inglese deduco che possa risponderti tranquillamente in Italiano :P</div><br><blockquote type="cite"><div dir="ltr"><div><b>class User():</b></div><div><b>  def __init__(self, _name, _lastname):</b></div>
<div><b>       self.Name = _name</b></div><div><b>       self.LastName = _lastname</b></div><div><b><br></b></div><div><b>class News():</b></div><div><b>  def __init__(self, _news,_user):</b></div><div><b>       self.News = _news</b></div>
<div><b>       self.User = _user</b></div><div><br></div></div></blockquote><div><br></div><div>Voglio solo farti notare che questo modo di definire le classi è un cattivo idioma (sia in Python 2 che Python 3).</div><div>Per inciso:</div><div><br></div><div>(Python 2)</div><div>class News(object):</div><div>    […]</div><div><br></div><div>(Python 3)</div><div>class News:</div><div>    […]</div><div><br></div><div>L'argomento è stato ampiamente trattato altrove e un buon manuale può risolverti qualsiasi dubbio.</div><br><blockquote type="cite"><div dir="ltr"><div><br></div><div>than i create my class in my code:</div><div><br></div><div>...</div><div><b>myUser = User("Mario","Rossi")</b></div><div><b>myNews = News("My last news", myUser)</b></div>
<div><b><br></b></div><div><b>JSONstring = dumps(myNews)</b></div><div>...</div><div><br></div></div></blockquote><div><br></div><div>Tornando a noi: deduco che tu stia utilizzando `simplejson.dumps`</div><br><blockquote type="cite"><div dir="ltr"><div>but in the last line of code i get the error that the News class is not JSON serializable.</div><div><br></div>
</div></blockquote><div><br></div>Anche in questo caso, la questione è arci-nota. Basterebbe google per questo!</div><div>Ad ogni modo: <a href="http://simplejson.readthedocs.org/en/latest/#encoders-and-decoders">http://simplejson.readthedocs.org/en/latest/#encoders-and-decoders</a></div><div><br></div><div>La questione è che devi definire un `custom_encoder` per codificare un oggetto custom.</div><div>Banalmente questo:</div><div><br></div><div><div>def custom_encoder(obj):</div><div>    if isinstance(obj, News):</div><div>        return obj.to_json()</div><div>    return simplejson.encoder(obj)</div><div><br></div><div>JSONstring = dumps(range(2), default=custom_encoder)</div><div><br></div><div>dovrebbe risolverti il problema.</div><div>Quello che ti resta da fare è implementare il metodo `to_json` nella classe `News` che faccia al caso tuo, ricordando quali siano le conversioni di tipo Python2JSON di default </div><div>(trovi una tabella a riguardo nella documentazione che ti ho segnalato).</div><div><br></div><div>Ciao</div></div><div>
--<br>valerio<br><br>

</div>
<br></body></html>