我正在进行Json解析
这是我的java代码
if(jsonstr!=null){
try{
JSONObject jsonResponse = new JSONObject(jsonstr);
/***** Returns the value mapped by name if it exists and is a JSONArray. ***/
/******* Returns null otherwise. *******/
JSONArray jsonproduct = jsonResponse.optJSONArray("products");
/*********** Process each JSON Node ************/
int lengthJsonArr = jsonproduct.length();
for (int i = 0; i < lengthJsonArr; i++) {
JSONObject c = jsonproduct.getJSONObject(i);
itemcode.add(c.get("Code").toString());
item.add(c.get("Name").toString());
quantity.add("");
category.add("CategoryCode");
}
错误是
org.json.JSONException:Value [{“categories”:[{...................... all json}]
我的json喜欢
[{categories {[“a”:“s”“b”:“g” }, {“a”:“s”“b”:“g” } ]},
产品{[“a”:“s”“b”:“g” }, {“a”:“s”“b”:“g” } ]}]
MY Json网络服务网址 [web服务] [1]
请帮帮我如何解决此问题 在此先感谢
答案 0 :(得分:1)
试试:
将products
替换为categories
try{
JSONObject jsonResponse = new JSONObject(jsonstr);
/***** Returns the value mapped by name if it exists and is a JSONArray. ***/
/******* Returns null otherwise. *******/
JSONArray jsonproduct = jsonResponse.optJSONArray("categories");
/*********** Process each JSON Node ************/
int lengthJsonArr = jsonproduct.length();
for (int i = 0; i < lengthJsonArr; i++) {
JSONObject c = jsonproduct.getJSONObject(i);
itemcode.add(c.get("Code").toString());
item.add(c.get("Name").toString());
quantity.add("");
category.add("CategoryCode");
}
答案 1 :(得分:0)
您的JSON无效。
您可以使用在线工具进行检查:http://json.parser.online.fr/
JSON语法的链接:http://www.w3schools.com/json/json_syntax.asp
修改强> 好的,现在我们有了真正的JSON,它是正确的。
如何用JSONObject
替换JSONArray
。因为您的JSON 是Array
。
答案 2 :(得分:0)
您的JSON无效。
也许你会选择这样的东西?
{
"categories": [
{
"a": "s",
"b": "g"
},
{
"a": "s",
"b": "g"
}
],
"product": [
{
"a": "s",
"b": "g"
},
{
"a": "s",
"b": "g"
}
]
}
答案 3 :(得分:0)
试试这个,
if(jsonstr!=null){
try{
JSONArray jsonResponse = new JSONArray(jsonstr);
JSONObject jsonResponse = jsonResponse.get(0);
/***** Returns the value mapped by name if it exists and is a JSONArray. ***/
/******* Returns null otherwise. *******/
JSONArray jsonproduct = jsonResponse.getJSONArray("products");
/*********** Process each JSON Node ************/
int lengthJsonArr = jsonproduct.length();
for (int i = 0; i < lengthJsonArr; i++) {
JSONObject c = jsonproduct.getJSONObject(i);
itemcode.add(c.get("Code").toString());
item.add(c.get("Name").toString());
quantity.add("");
category.add("CategoryCode");
}
答案 4 :(得分:0)
因为您使用的json无效。 你正在进行的解析也无效
这是一个很好的链接,开始使用android json解析
http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
答案 5 :(得分:0)
这种情况发生的原因是你的json是从jsonArray
开始的,那你为什么选择jsonObject
[
{
"categories": [
{
"Code": "1001",
"Name": "ROOM LINEN",
"ShortName": "ROLN",
"DivisionCode": "10",
"SequenceNo": "3"
你应该尝试@akash moradiya的代码,他指的是正确的方式。
答案 6 :(得分:0)
试试这个..
JSONArray jsonarray = new JSONArray(jsonstr);
JSONObject jsonResponse = jsonarray.getJSONObject(1);
JSONArray jsonproduct = jsonResponse.getJSONArray("products");
for (int i = 0; i < jsonproduct.length(); i++) {
JSONObject c = jsonproduct.getJSONObject(i);
itemcode.add(c.getString("Code"));
item.add(c.getString("Name"));
quantity.add("");
category.add("CategoryCode");
}