Comment Enregistrer JSON dans une variable de Chaîne à l'aide de JAVA Dans Android?
je suis novice sur android Voici JSON définis, j'ai besoin de sauvegarder manuellement JSON dans une variable de Chaîne à l'aide de JAVA dans Android.Je suis diffculty pour ce faire.voici le code que j'ai essayé mais ce n'est pas correct.
String jsonObject = "{
{
"id": 22,
"menu_id": 1,
"field_type_id": 1,
"c4w_code": "1234",
"field_label": "Customer No",
"field_values": "",
"date_Created": "2012-09-16 05:11:23",
"date_modified": "2013-11-20 10:33:23",
"is_required": 0,
"is_static": 1,
"field_order": 1
},
{
"id": 23,
"menu_id": 1,
"field_type_id": 1,
"c4w_code": "1234",
"field_label": "Company Name",
"field_values": "",
"date_Created": "2012-09-16 05:11:56",
"date_modified": "2013-11-20 10:33:23",
"is_required": 1,
"is_static": 1,
"field_order": 3
}
}";
j'ai besoin de le stocker soit dans la Chaîne ou dans JSONObject de sorte que je peux bouger la tête à travailler avec ce.
après l'ajout de code :
MenuFields menuFieldInstance[];//an array of bean Class
Gson gson = new Gson();
String jsonObjectString ="{\n\n\n {\n \"id\": 22,\n \"menu_id\": 1,\n \"field_type_id\": 1,\n \"c4w_code\": \"1234\",\n \"field_label\": \"Customer No\",\n \"field_values\": \"\",\n \"date_Created\": \"2012-09-16 05:11:23\",\n \"date_modified\": \"2013-11-20 10:33:23\",\n \"is_required\": 0,\n \"is_static\": 1,\n \"field_order\": 1\n },\n {\n \"id\": 23,\n \"menu_id\": 1,\n \"field_type_id\": 1,\n \"c4w_code\": \"1234\",\n \"field_label\": \"Company Name\",\n \"field_values\": \"\",\n \"date_Created\": \"2012-09-16 05:11:56\",\n \"date_modified\": \"2013-11-20 10:33:23\",\n \"is_required\": 1,\n \"is_static\": 1,\n \"field_order\": 3\n }\n\n}";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
menuFieldInstance = gson.fromJson(jsonObjectString,MenuFields[].class);
for(int i=0;i<jsonObjectString.length();i++)
{
Log.i("menuField Instance ",""+menuFieldInstance[i].getId());
}
}
je reçois ce logCat:
12-30 22:56:47.745: E/AndroidRuntime(2238): FATAL EXCEPTION: AsyncTask #3
12-30 22:56:47.745: E/AndroidRuntime(2238): java.lang.RuntimeException: Une erreur s'est produite lors de l'exécution de doInBackground()
12-30 22:56:47.745: E/AndroidRuntime(2238): au android.os.AsyncTask$3.fait(AsyncTask.java:299)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.FutureTask$De Synchronisation.innerSetException(FutureTask.java:273)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.FutureTask.setException(FutureTask.java:124)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.FutureTask$De Synchronisation.innerRun(FutureTask.java:307)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.FutureTask.exécuter(FutureTask.java:137)
12-30 22:56:47.745: E/AndroidRuntime(2238): au android.os.AsyncTask$SerialExecutor$1.exécuter(AsyncTask.java:230)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.ThreadPoolExecutor$Travailleur.exécuter(ThreadPoolExecutor.java:569)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.lang.Fil de discussion.exécution(Thread.java:856)
12-30 22:56:47.745: E/AndroidRuntime(2238): Causée par: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Attendu BEGIN_ARRAY mais a été BEGIN_OBJECT à la ligne 1 de la colonne 2
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.Gson.fromJson(Gson.java:815)
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.Gson.fromJson(Gson.java:768)
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.Gson.fromJson(Gson.java:717)
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.Gson.fromJson(Gson.java:689)
12-30 22:56:47.745: E/AndroidRuntime(2238): à com.survey.management.activity.MainActivity$RequestForCustomerMenuFields.getCustomerMenuFieldsData(MainActivity.java:480)
12-30 22:56:47.745: E/AndroidRuntime(2238): à com.survey.management.activity.MainActivity$RequestForCustomerMenuFields.doInBackground(MainActivity.java:456)
12-30 22:56:47.745: E/AndroidRuntime(2238): à com.survey.management.activity.MainActivity$RequestForCustomerMenuFields.doInBackground(MainActivity.java:1)
12-30 22:56:47.745: E/AndroidRuntime(2238): au android.os.AsyncTask$2.appel(AsyncTask.java:287)
12-30 22:56:47.745: E/AndroidRuntime(2238): à java.util.de façon concomitante.FutureTask$De Synchronisation.innerRun(FutureTask.java:305)
12-30 22:56:47.745: E/AndroidRuntime(2238): 5 ... plus
12-30 22:56:47.745: E/AndroidRuntime(2238): Causée par: java.lang.IllegalStateException: Attendu BEGIN_ARRAY mais a été BEGIN_OBJECT à la ligne 1 de la colonne 2
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.flux de données.JsonReader.beginArray(JsonReader.java:338)
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.interne.bind.ArrayTypeAdapter.lire(ArrayTypeAdapter.java:70)
12-30 22:56:47.745: E/AndroidRuntime(2238): au com.google.gson.Gson.fromJson(Gson.java:803)
12-30 22:56:47.745: E/AndroidRuntime(2238): ... plus de 13
- Autant que je sache, Java ne sait pas multiligne chaîne literales.
- quelqu'un peut-il svp me guider tout le tutoriel afin que je puisse stocker json dans la chaîne ou dans jsonObject
- Tout d'abord, ce n'est pas un JSON valide, essayez à json.parser.online.fr
- Lire stackoverflow.com/questions/3559063/...
- lire le message d'erreur: "Attendu BEGIN_ARRAY mais a été BEGIN_OBJECT". Alors lisez json spécifications: json.org
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de remplacer tous vos (guillemets doubles)
" to \"
pour compiler l'objet String en java.Utiliser le dessous de la chaîne:
A fonctionné comme un charme!!!
remplacer tous vos apostrophe (") avec (\") et il va fonctionner.