0

I am trying to look for a way of setting data of each object in json to a different TextView , but i don't know how to use the result of Json in the onCompleted method. Below is my JSON sample i want to retrieve.

[
  {
    "progname": "BACHELOR OF BUSINESS ADMINISTRATION",
    "gradSystem": "NCHE 2015",
    "entryno": "00458",
    "regno": "BABA/09/W/J0434",
    "firstname": "CHARLES",
    "dob": "/Date(220136400000)/",
    "gender": "MALE",
    "nationality": "UGANDAN",
    "religion": "-",
    "entrymethod": "DIRECT",
    "progid": "01307",
    "studPhone": "256772372062",
    "email": "-@-",
    "entryyear": 2009,
    "studsesion": "DAY",
    "home_dist": "-",
    "intake": "JANUARY",
    "gradSystemID": 1,
    "othername": "MUTABAZI",
    "duration": 3,
    "photofile": "mutabazi charles.png"
  }
]

This is the ion method

Ion.with(StudentsProfile.this)
                .load(url)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                        String reg =        result.toString();
                        reg_no.setText(reg);


                    }
                });

This is my full class .

public class StudentsProfile extends AppCompatActivity {


    String username = "username";

    TextView reg_no;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.students_profile);


      reg_no =(TextView) findViewById(R.id.registration_no);

        Intent inn = getIntent();
        if (null != inn) {
            username = inn.getStringExtra(Login.KEY_USERNAME);
            //District = inn.getStringExtra(BuyApartmentsOne.KEY_DISTRICT_NAME);




        }


        String url ="http://192.168.43.104:82:82/COOPERP/Mobile/Default.aspx?DataFormat=StudentBioData&regno="+username;

        Ion.with(StudentsProfile.this)
                .load(url)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                        // do stuff with the result or error
                       String reg =        result.toString();
                        reg_no.setText(reg);


                    }
                });






    }


    }

If i try to run the project this is the error which comes in the logcat

0-12 15:18:28.416 15645-29090/campus.app.com.newline.campusmobapp E/ProviderInstaller: libgmscore version mismatch (0 vs. 9683)
10-12 15:19:20.717 15645-15645/campus.app.com.newline.campusmobapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                     Process: campus.app.com.newline.campusmobapp, PID: 15645
                                                                                     java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.gson.JsonObject.toString()' on a null object reference
                                                                                         at campus.app.com.newline.campusmobapp.StudentsProfile$1.onCompleted(StudentsProfile.java:58)
                                                                                         at campus.app.com.newline.campusmobapp.StudentsProfile$1.onCompleted(StudentsProfile.java:51)
                                                                                         at com.koushikdutta.async.future.SimpleFuture.handleCallbackUnlocked(SimpleFuture.java:107)
                                                                                         at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:141)
                                                                                         at com.koushikdutta.async.future.SimpleFuture.setComplete(SimpleFuture.java:124)
                                                                                         at com.koushikdutta.ion.IonRequestBuilder$1.run(IonRequestBuilder.java:244)
                                                                                         at com.koushikdutta.async.AsyncServer$RunnableWrapper.run(AsyncServer.java:60)
                                                                                         at android.os.Handler.handleCallback(Handler.java:739)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                         at android.os.Looper.loop(Looper.java:211)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:5389)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

.

  • Have you checked if the given url is working? Plus, from your json, it appears to be a JSONArray, not a JSONObject – Ricardo Oct 12 '16 at 12:44
  • @Ricardo my URL is working , so should i change the word JSONObject to JSONArray in the ion , and please if that its true can you please show me how i can parse one object to my textView e.g regno. –  Oct 12 '16 at 12:47
  • replace asJsonObject with asJsonArray. onComplete method gets a JSONArray as result. After that just make a for loop to retrieve every jsonobject in your json array response – Ricardo Oct 12 '16 at 14:02
  • Ok , but it would have been better if you show me an example , because am still new in this –  Oct 12 '16 at 14:14
  • Was that what you were looking for? – Ricardo Oct 12 '16 at 17:05

0 Answers0