【发布时间】:2021-11-15 07:29:04
【问题描述】:
我在 Stack 中多次看到这个问题,但没有运气。问题是,我使用这个 API 来验证我的 CNPJ 字段,如果我有连接,响应将是字段“nome”并填充我的 textview 字段。
到目前为止一切顺利,JSON 是有效的(已在 jsonformatter 中传递),但我无法通过 JSONArray 找到对象,当我设法通过 JSONObject 找到它时,它告诉我无法转换为 String。
valide.setOnClickListener(view1 -> {
//String PJ = cnpj.getText().toString();
String PJ = "06990590000123";
String url = "https://www.receitaws.com.br/v1/cnpj/" + PJ;
jsonParse(url);
});
private void jsonParse(String url) {
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
String json;
@Override
public void onResponse(JSONObject response) {
try {
json = response.getJSONObject("nome").toString();
razao.append(json);
razao.setText(json);
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(), "Invalid ! ", Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError erro) {
erro.printStackTrace();
}
});
mQueue.add(request); //Volley.newRequestQueue
}
JSON
{ "atividade_principal": [ { "text": "Portais, provedores de conteúdo e outros serviços de informação na internet", "code": "63.19-4-00" } ],
"data_situacao": "01/09/2004",
"complemento": "ANDAR 17A20 TSUL 2 17A20", "tipo": "MATRIZ",
**"nome": "GOOGLE BRASIL INTERNET LTDA.", //Need this field**
"uf": "SP",
"telefone": "(11) 2395-8400",
"email": "googlebrasil@google.com",
日志
org.json.JSONException:值 GOOGLE BRASIL INTERNET LTDA。在没有 类型 java.lang.String 无法转换为 JSONObject 在 org.json.JSON.typeMismatch(JSON.java:101)
使用的网址
https://www.receitaws.com.br/v1/cnpj/06990590000123
有人可以帮我解决这个问题吗?谢谢!
【问题讨论】:
-
JSON 中的“nome”属性是字符串值,不是对象值。所以你应该有:
json = response.getString("nome"); -
感谢乔恩的回复,但没有成功!仍然遇到同样的错误!
-
请你试试你尝试过的东西好吗?
-
编辑我使用的 onclick 问题
-
@Marrows Change 不在 JS 中。它在 Java 代码中。请参考下面的答案。
标签: java android json android-studio