android– 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组

android– 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组,第1张

概述我正在解析这个url,我有一个例外,不知道如何跳过它……我只需要获得100个最受欢迎的应用程序的名称.有一个关键的“im:name”,里面有一个键“lebel”,但是我认为它是无效的JsonArray,所以我需要找到通过键“im:name”获取名字的方法…有smb任何想法我该如何解决这个问题?这是我的Asyn

我正在解析这个url,我有一个例外,不知道如何跳过它……我只需要获得100个最受欢迎的应用程序的名称.有一个关键的“im:name”,里面有一个键“lebel”,但是我认为它是无效的JsonArray,所以我需要找到通过键“im:name”获取名字的方法…有smb任何想法我该如何解决这个问题?

这是我的AsyncTask.class

    public class AsyncTaskParseJson extends AsyncTask<String, String, String> {    String JsonStringUrl = "https://itunes.apple.com/br/RSS/topfreeapplications/limit=100/Json";    JsONArray dataJsonArr = null;    @OverrIDe    protected voID onPreExecute() {}    @OverrIDe    protected String doInBackground(String... arg0) {        try {            // instantiate our Json parser            JsonParser jParser = new JsonParser();            // get Json string from url            JsONObject Json = jParser.getJsONFromUrl(JsonStringUrl);            // get the array of users//HERE I NEED TO CHANGE SOMETHING            dataJsonArr = Json.getJsONArray("Feed"); // probably wrong            // loop through all users            for (int i = 0; i < dataJsonArr.length(); i++) {                JsONObject c = dataJsonArr.getJsONObject(i);                // Storing each Json item in variable                String name = c.getString("im:name");//probably wrong            }        } catch (JsONException e) {            e.printstacktrace();        }        return null;    }}

这是日志

    09-10 20:04:03.013  18211-18241/com.yuretsrodik.top100apps E/JsonParser.java﹕ Error parsing data org.Json.JsONException: Unterminated array at character 115 of {"Feed":{"author":{"name":{"label":"iTunes Store"}, "uri":{"label":"http://www.apple.com/br/itunes/"}}, "entry":[n{"im:name":{"label":"Messenger"}, "im:image":[n{"label":"http://a474.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.53x53-50.png", "attributes":{"height":"53"}}, n{"label":"http://a990.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.75x75-65.png", "attributes":{"height":"75"}}, n{"label":"http://a1675.phobos.apple.com/us/r30/Purple4/v4/78/1f/f9/781ff9ea-bf94-5309-4c32-4b901279e54a/mzl.rairyzma.100x100-75.png", "attributes":{"height":"100"}}], "summary":{"label":"lcance instantaneamente as pessoas na sua vIDa, gratuitamente. O Messenger é como mensagens de texto, mas você não precisa pagar por cada mensagem (funciona com o seu plano de dados). \n\nNão é só para amigos no Facebook: envIE mensagens para as pessoas na sua agenda de contatos e basta inserir um número de telefone para adicionar um novo contato.\n\nBate-papos em grupo: crIE grupos para as pessoas a quem você mais envia mensagens. Dê um nome a eles, defina fotos para o grupo e os mantenha em um só lugar.\n\nFotos e vídeos: grave vídeos e tire selfIEs ou outras fotos diretamente do aplicativo e envIE-os com um toque.\n\nligações gratuitas: fale por quanto tempo quiser, mesmo com pessoas em outros países. (ligações são gratuitas somente através do Wi-Fi. Do contrário, cobranças de dados padrão são aplicáveis).\n\nMais formas de enviar mensagens: \nDê vIDa às suas conversas com as figurinhas. \nVeja uma prévia das suas fotos e vídeos no rolo da câmera sem sair da conversa, e escolha as melhores para enviar.\nGrave mensagens de voz quando tiver mais para dizer\n\nRecursos adicionais:\nSaiba quando as pessoas viram suas mensagens.\nEncaminhe mensagens ou fotos para as pessoas que não estavam na conversa.\nProcure pessoas e grupos para entrar em contato com eles rAPIdamente.\nAtive a localização para que as pessoas saibam que você está nas imediações.\nVeja quem está disponível no Messenger e quem está on-line no Facebook. \nDesative as notificações quando você estiver trabalhando, dormindo ou se precisar dar um tempo.\nFique conectado para nunca perder uma mensagem."}, "im:price":{"label":"Grátis", "attributes":{"amount":"0.00000", "currency":"USD"}}, "im:ContentType":{"attributes":{"term":"Application", "label":"Aplicativo"}}, "rights":{"label":"© Facebook, Inc."}, "Title":{"label":"Messenger - Facebook, Inc."}, "link":{"attributes":{"rel":"alternate", "type":"text/HTML", "href":"https://itunes.apple.com/br/app/messenger/ID454638411?mt=8&uo=2"}}, "ID":{"label":"https://itunes.apple.com/br/app/messenger/ID454638411?mt=8&uo=2", "attributes":{"im:ID":"454638411", "im:bundleID":"com.facebook.Messenger"}}, "im:artist":{"label":"Facebook, Inc.", "attributes":{"href":"https://itunes.apple.com/br/artist/facebook-inc./ID284882218?mt=8&uo=2"}}, "category":{"attributes":{"im:ID":"6005", "term":"Social Networking", "scheme":"https://itunes.apple.com/br/genre/ios-redes-sociais/ID6005?mt=8&uo=2", "label":"Redes sociais"}}, "im:releaseDate":{"label":"2011-10-19T15:39:30-07:00", "attributes":{"label":"19/10/2011"}}}, n{"im:name":{"label":"WhatsApp Messenger"}, "im:image":[n{"label":"http://a1554.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.53x53-50.png", "attributes":{"height":"53"}}, n{"label":"http://a422.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.75x75-65.png", "attributes":{"height":"75"}}, n{"label":"http://a1251.phobos.apple.com/us/r30/Purple1/v4/1f/94/ff/1f94ffd9-159e-a247-2c0f-059f86b6c6c9/mzl.ivmblqpq.100x100-75.png", "attributes":{"height":"100"}}], "summary":{"label":"O WhatsApp Messenger é um mensageiro para smartphone09-10 20:04:03.013  18211-18241/com.yuretsrodik.top100apps W/dalvikvm﹕ threadID=11: thread exiting with uncaught exception (group=0x42044e48)09-10 20:04:03.023  18211-18241/com.yuretsrodik.top100apps E/AndroIDRuntime﹕ FATAL EXCEPTION: AsyncTask #1    Process: com.yuretsrodik.top100apps, PID: 18211    java.lang.RuntimeException: An error occured while executing doInBackground()            at androID.os.AsyncTask.done(AsyncTask.java:300)            at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)            at java.util.concurrent.FutureTask.setException(FutureTask.java:222)            at java.util.concurrent.FutureTask.run(FutureTask.java:242)            at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)            at java.lang.Thread.run(Thread.java:841)     Caused by: java.lang.NullPointerException            at com.yuretsrodik.top100apps.AsyncTaskParseJson.doInBackground(AsyncTaskParseJson.java:32)            at com.yuretsrodik.top100apps.AsyncTaskParseJson.doInBackground(AsyncTaskParseJson.java:10)            at androID.os.AsyncTask.call(AsyncTask.java:288)            at java.util.concurrent.FutureTask.run(FutureTask.java:237)            at androID.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)            at java.lang.Thread.run(Thread.java:841)

将非常非常感谢帮助!!因为我真的堆叠(

解决方法:

首先,您进行调用将结果转换为名为Json的字符串.
然后你必须将字符串转换为Json对象

          String Json = null;          JsONObject JsonObj = null;  JsONObject FeedsObject = null;     Json = jParser.getJsONFromUrl(JsonStringUrl);       if (Json != null) {    try {         JsonObj = new JsONObject(Json);        FeedObject = JsonObj.getJsONObject("Feed");

为了更好地理解,请访问http://json.parser.online.fr/beta/并在那里粘贴您的Json数据.
在右边你有一个设置按钮—>显示类型
您可以找到对象,字符串和数组

见下图.你试图获得一个不是数组的对象

总结

以上是内存溢出为你收集整理的android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组全部内容,希望文章能够帮你解决android – 从url解析JSON,异常:解析数据时出错org.json.JSONException:字符115处的未终止数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1098943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存