当前位置: 首页 > 知识库问答 >
问题:

我想添加json对象,它是嵌套在数据库中使用Volley。我不能加上这个

朱乐逸
2023-03-14

这是我要添加的嵌套对象类型:{“user_id”:434,“firstname”:“harry”,“lastname”:“dex”,“username”:“pn1002”,“password”:“reset123”,“role”:{“rolename”:“user”}}

这是我的主文件:

EditText firstName, lastName, userName, passWord;
Spinner roleName;
Button submit;
String rolename;
String fName, lName, uName, pass, rName;
RequestQueue requestQueue;
static final String REQ_TAG = "VACTIVITY";



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_new_user);

    submit = (Button) findViewById(R.id.btn_submit);
    firstName = findViewById(R.id.et_fstName);
    lastName =  findViewById(R.id.et_lstName);
    userName =  findViewById(R.id.et_userName);
    passWord = findViewById(R.id.et_passWord);

    roleName = (Spinner) findViewById(R.id.et_roleName);
    ArrayList<String> arrayList = new ArrayList<>();
    arrayList.add("User");
    arrayList.add("Engineer");
    arrayList.add("Team Manager");
    arrayList.add("Worker");
    arrayList.add("Developer");
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arrayList);
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    roleName.setAdapter(arrayAdapter);

    roleName.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            rolename = adapterView.getItemAtPosition(i).toString();
           // Toast.makeText(adapterView.getContext(), "Selected: " + rolename, Toast.LENGTH_LONG).show();

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

    requestQueue = RequestQueueSingleton.getInstance(this.getApplicationContext())
            .getRequestQueue();

    submit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            fName = firstName.getText().toString();
            lName = lastName.getText().toString();
            uName = userName.getText().toString();
            pass = passWord.getText().toString();
            rName = rolename;

            addUserdata();
        }
    });

}

protected void onStop() {
    super.onStop();
    if (requestQueue != null) {
        requestQueue.cancelAll(REQ_TAG);
    }
}

public void addUserdata() {

    JSONObject json = new JSONObject();
    JSONObject jsonObject = new JSONObject();
    try {

        json.put("roleName", rName);


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

    try {
        jsonObject.put("role", json);
        jsonObject.put("firstName",fName);
        jsonObject.put("lastName",lName);
        jsonObject.put("userName",uName);
        jsonObject.put("password",pass);
    } catch (JSONException e) {
        e.printStackTrace();
    }


    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, EndPoint.ADD_USER,jsonObject,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        Toasty.success(AddNewUserActivity.this,"Saved successfully!"+response.get("message").toString(),Toasty.LENGTH_LONG).show();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(AddNewUserActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
    jsonObjectRequest.setTag(REQ_TAG);
    requestQueue.add(jsonObjectRequest);



}

我收到警告:

w/system.err:org.json.jsonobject.get(jsonobject.java:392)在com.project.project1.myapplication2.activities.addnewuseractivity.java:3.onresponse(addnewuseractivity.java:143)在com.project.project1.myapplication2.activities.addnewuseractivity.java:139)w/system.err:at executorDelivery.java:106)在Android.os.handler.handleCallback(handler.java:873)在Android.os.handler.dispatchMessage(handler.java:99)在Android.os.handler.dispatchMessage(handler.java:214)在Android.app.activitythread.main(activitythread.java:7078)在java.lang.reflect.Method.invoke(原生方法)W/system.err:at init.java:974)

共有1个答案

周峻
2023-03-14

您的rolenamenull直到您从spinner中选择它,这意味着您的rname最初也是null,这将引发错误。尝试在单击旋转器之前将其设置为某个值

 类似资料:
  • 您好,我无法在数据库中添加多个用户。我想添加我的ArrayList中存在的所有用户。我的代码是: 我的模型是: 因此,我只将第一个用户添加到数据库中,而不将其他用户添加到数据库中。如何在数据库中添加所有用户?

  • 问题内容: 我有一个WSDL文件,其中包含以下条目: 我使用具有以下设置的CXF Codegen插件: 生成的Java代码如下所示: 至于其他答案,我可以放置绑定文件。因此,我创建了一个包含以下内容的绑定文件: 并且我在POM.XML中添加了以下代码块: 之后,我收到错误消息: 因此,我不知道如何准确地描述当complexType为OutputMapping1时,将@XmlRootElement放

  • 我使用带有以下设置的CXF Codegen插件: 生成的java代码如下所示: 问题是这里缺少@XmlRootelement。还有另一个类似的问题 maven-cxf-codegen-plugin,使用Jaxb绑定为所有生成的类添加继承 注释CXF(wsdl2java)生成的包 在外部为类创建jaxb注释 因此,我不知道如何准确地描述当complexType是OutputMapping1时,将@X

  • 问题内容: 有什么方法可以在JSON中嵌套对象,因此我不必从所有内容中制成数组?为了能够无错误地解析我的对象,我似乎需要这样的结构: 如果我将此对象提取到一个名为“结果”的变量中,则必须像这样访问嵌套的对象: 和 这对我来说似乎很笨拙和多余,如果可能的话,我希望: 和 但是,当一切都是数组时,如何直接使用对象键?在我困惑和未受教育的头脑中,这样的事情似乎更合适: 我可能在这里误解了一些基本知识,但

  • 问题内容: 在扬帆起航时,我还没有DB的所有连接信息。 有没有办法让配置值依赖于Promise或在风帆提升完成后动态创建连接? 很明显,如果尚不可用,我显然必须添加一个策略或钩子来处理对需要该模型的路由的请求,但是在这一点上,我什至看不到如何扬帆,直到我已经知道连接信息(它必须在配置中)。 我希望我缺少一种动态创建连接和连线模型的方法。 问题答案: 是; sails.js中的两件事允许您执行此操作

  • 我正在Android Studio中做一个项目,我需要在一个RecyclerView中列出几部电影(在本例中,来自RESTful API的几部意味着20)。现在我已经设置好了所有内容,我的静态虚拟内容显示在使用cardview的recyclerview中。然而,当我切换到RESTful API时,我的真实数据(来自RESTful API)会出现问题。这是我的主要活动。带有手动数据的java代码(显