Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Json java creazione

  1. #1

    Json java creazione

    Ciao sto usando la libreria simple json per generare un json ...uso JSONObject e poi faccio i put usando copia chiave-valore....Il problema e che quando invio via http


    mi dice this is not json primitive


    Praticamente quello che faccio è inviare la seguente stringa


    JSONObject jo...lo riempio con i vari valori e poi faccio


    "{\"id\":111,\"data\":"+jo+"}"


    Se guardo a video il risultato è


    {"id":111,"data":{"chiave":valore}}


    Il problema è quindi lato server quando viene fatta la deserializzazione..ma non capisco il perchè cavolo visto che uso una libreria per creare il json e aggiungo solo io a mano un piccolo pezzo di stringa....Che libreria posso usare?Perchè se usi la libreria poi da errore quando si fa la deserializzazione

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Alcune considerazioni.

    1) Se non posti un po' più di codice in modo da rendere chiaro quel che stai facendo è difficile dirti se stai commettendo qualche errore.

    2) Verifica sulla documentazione della libreria se vi è un metodo apposito per trasformare correttamente l'oggetto JSONObject nella relativa rappresentazione stringa... non è detto a priori che tale classe abbia ridefinito il metodo toString() in modo da fare quello che vuoi fare... quindi, non è detto che la semplice concatenazione sia l'operazione giusta da fare.

    Io, per avere una libreria JSON, sono andato qui (ovvero, nella pagina ufficiale della libreria JSON), ho scaricato i sorgenti (i primi 7 files), li ho compilati e assemblati in un JAR che ora uso.


    PS: dall'esempio che hai postato io non vedo nulla di "anomalo". Quello che hai postato è un JSon perfettamente valido, quindi non so nemmeno se ho capito bene il tuo problema o no. Eventualmente, rispiega.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Quel che faccio è

    JSONObject json = new JSONObject();


    json.put("data1", value1);
    json.put("data2", value2);
    json.put("dat_agg_img_dam", value3);
    e poi

    "{\"id\":"+row1.id+",\"dataset\":"+row1.dataset+", \"data\":"+json.toString()+"}"

  4. #4
    Ciao alessio,
    Non capisco il perchè di quella concatenazione (tra l'altro è sbagliato chiamare il toString....).
    Puoi fare tutto direttamente con la libreria da te indicata.
    codice:
    JSONObject object = new JSONObject();
    		object.put("data1", "value1");
    		object.put("data2", "value2");
    		object.put("dat_agg_img_dam", "value3");
    
    
    		JSONObject container = new JSONObject();
    		container.put("id", "row.id");
    		container.put("dataset", "row.dataset");
    		container.put("data", object);
    Questo da come output (System.out.println(container.toJSONString())
    {"id":"row.id","dataset":"row.dataset","data":{"da ta1":"value1","data2":"value2","dat_agg_img_dam":" value3"}}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.