2016-03-14 3 views
0

В настоящее время я создаю приложение CMS, и я пытаюсь создать объект JSON, который я могу отправить в свой API, но я не знаю, как это сделать, потому что im new для android. у кого есть идея?обновить/создать объект JSON при нажатии кнопки

How it looks

Мой код:

String URL = "http://test.soundwave.drieo.nl/api/content/" + uid + "?apikey=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 

    try { 
     APIClientJSONObject api = new APIClientJSONObject(); 
     JSONObject result = null; 

     try { 
      result = api.execute(URL).get(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

      try { 

       String content = result.optString("FormattedName"); 
       String content2 = result.optString("Title"); 
       String content3 = result.optString("Subtitle"); 
       String content4 = result.optString("Text"); 

       EditText name = (EditText) findViewById(R.id.etInternNaam); 
       name.setText(content); 
       EditText titel = (EditText) findViewById(R.id.etName); 
       titel.setText(content2); 
       EditText ondertitel = (EditText) findViewById(R.id.etOndertitel); 
       ondertitel.setText(content3); 
       EditText EditText = (EditText) findViewById(R.id.etTekst); 
       EditText.setText(Html.fromHtml(content4)); 

       if("null" == content) { 
        name.setText(""); 
       } 
       if("null" == content2) { 
        titel.setText(""); 
       } 
       if("null" == content3) { 
        ondertitel.setText(""); 
       } 
       if("null" == content4) { 
        EditText.setText(""); 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

код API:

package nl.drieo.soundwave.test.cms; 

import android.os.AsyncTask; 

import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import cz.msebera.android.httpclient.HttpResponse; 
import cz.msebera.android.httpclient.client.HttpClient; 
import cz.msebera.android.httpclient.client.methods.HttpGet; 
import cz.msebera.android.httpclient.impl.client.DefaultHttpClient; 

/** 
* Created by r.devries on 14-3-2016. 
*/ 
public class APIClientJSONObject extends AsyncTask<String, Void, JSONObject>   { 

@Override 
protected JSONObject doInBackground(String... params) { 

    JSONObject result = null; 

    try { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpResponse httpResponse = httpclient.execute(new HttpGet(params[0])); 
     InputStream inputStream = httpResponse.getEntity().getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
     StringBuilder builder = new StringBuilder(); 

     String line = null; 

     while ((line = reader.readLine()) != null) { 
      builder.append(line); 
     } 
     result = new JSONObject(builder.toString()); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return result; 
} 

}

ответ

0

вы можете создать JSONObject, как это и поместить данные в том, что:

JSONObject json = new JSONObject(); 
json.put("user", "example"); 

после ввода данных в формате JSON, вы можете передать JSON к классу «APIClientJSONObject» таким путем:
EDIT: использовать этот код, чтобы OnClickListener для Баттона

try { 
     result = api.execute(URL,json.toString()).get(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

и вы можете получить JSon в классе «APIClientJSONObject», как это:

JSONObject jsonObject = new JSONObject(params[1]) 

или если вы хотите «POST» этот JSON в веб-сервиса, вы можете использовать:
EDIT: использовать это для APIClientJSONObject класса в методе doInBackground:

HttpPost httpost = new HttpPost(params[0]); 
StringEntity stringentity = new StringEntity(params[1]); 

httpost.setEntity(stringentity); 
httpost.setHeader("Accept", "application/json"); 
httpost.setHeader("Content-type", "application/json"); 
ResponseHandler responseHandler = new BasicResponseHandler(); 
httpclient.execute(httpost, responseHandler); 

Я надеюсь, что эти коды полезны для вас.

+0

Благодарим за отзыв, и вы собираетесь попробовать это сейчас, что вы имеете в виду с примерами? текст должен войти в пользователя? –

+0

Значение «пользователь» является «примером», пожалуйста, прочитайте [это] (http://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html) для получения дополнительной информации о JSONObject –

+0

Хорошо, спасибо , теперь, когда я это сделал, мой код не распознает параметры? это что-то еще, что нужно заполнить здесь? –

Смежные вопросы