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

如何使用Realm解析大型JSON并存储数据

岳谦
2023-03-14

我真的被阻止使用Realm解析和存储数据,我有一个大的JSON,我创建了所有的类模型,就像RealM的例子一样。

这是我的错误:由:org引起。json。JSONException:io的0处的值fr。领域例外。RealmException:无法在io上映射Json。领域领域com上的createObjectFromJson(Realm.java:860)。实例截击2。ImagesActivity$ImagesFragment。在com上加载数据(ImagesActivity.java:179)。实例截击2。ImagesActivity$ImagesFragment$2。com上的onResponse(ImagesActivity.java:133)。实例截击2。ImagesActivity$ImagesFragment$2。com上的onResponse(ImagesActivity.java:127)。Android截击工具箱。JsonRequest。com上的deliverResponse(JsonRequest.java:65)。Android截击ExecutorDelivery$ResponseDeliveryRunnable。在android上运行(ExecutorDelivery.java:99)。操作系统。汉德勒。android上的handleCallback(Handler.java:615)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:92)。操作系统。活套。android上的loop(Looper.java:137)。应用程序。活动线程。java上的main(ActivityThread.java:4921)。朗,反思一下。方法java上的Invokenactive(本机方法)。朗,反思一下。方法在com上调用(Method.java:511)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(zyteinit.java:1027)。Android内部的操作系统。合子体。dalvik的main(ZygoteInit.java:794)。系统原生艺术。主要(本机方法)由以下原因引起:org。json。JSONException:java类型的0处的值fr。无法将lang.String转换为JSONObject

查看数据的功能

 public void viewData(){

            RealmResults<ApplicationBean> im = realm.where(ApplicationBean.class).findAll();
            if(im.size()==0){Log.e("size de im = "+im.size(),"  ****");}
            else { for (int i = 0; i <im.size() ; i++) {
                Log.e("title = "+im.get(i).getId()," of pic");

            }
            }
    }

这是我解析JSON的函数

public List<ApplicationBean>  loadData(JSONObject obj) throws IOException, JSONException {


            if (obj.length() == 0) {
                Toast.makeText(getActivity(), "objet JSON est vide ! ", Toast.LENGTH_SHORT).show();
            }
            realm.beginTransaction();
           realm.createObjectFromJson(ApplicationBean.class, obj);
                 realm.commitTransaction();
            return  realm.allObjects(ApplicationBean.class);
        }

    }

这是我的班级模型MyString:

 public class MyString extends RealmObject {

    @PrimaryKey
    private int id;
    private String myString;

    public MyString() {
    }

    public MyString(int id, String myString) {
        this.id = id;
        this.myString = myString;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMyString() {
        return myString;
    }

    public void setMyString(String myString) {
        this.myString = myString;
    }
}

我使用了这个链接:https://github.com/realm/realm-java/issues/575创建remallist-to-remplace列表,我不能修改我的JSON

共有1个答案

邢运良
2023-03-14

Realm当前不支持基本数组。你有:

“语言”:[“fr”,“en”]

要让Realm自动将JSON映射到MyString类,必须将其转换为以下内容:

"语言": [ { "str":"fr"} , { "str":"en" } ]

你也可以在GitHub上找到更多关于这方面的信息:https://github.com/realm/realm-java/issues/575

 类似资料:
  • 问题内容: 这是我的JSON数据 我有两个Python类 我需要解析JSON数据并实例化适当的类。类是不言自明的:即Person具有一系列Character类。 如何实例化它们并适当地存储数据? 另外,我将如何访问特定的人员数据?即人的细节和特征 问题答案: 看看漏勺 ; 它使得将JSON数据结构转换为Python对象变得非常容易。 您定义一个架构: 然后使用以下命令传入您的JSON数据结构:

  • 我是Laravel7和WAMMPServe的开发人员,但在尝试使用follogin命令安装JWT:composer require tymon/JWT auth:dev dev develope--preference source时,我遇到了这个错误 致命错误:第153行上的phar://C:/ProgramData/composestup/bin/composer.phar/vendor/co

  • 问题内容: 我有一个AJAX调用,返回的是这样的JSON: 在div中,我将得到: 如何遍历此数据并将每个名称放在div中? 问题答案: 假设您的服务器端脚本未设置正确的响应标头,则需要使用参数向jQuery指示这是JSON 。 然后,您可以使用该函数遍历数据: 或使用方法:

  • 问题内容: 我正在研究可访问API的cron脚本,可接收JSON文件(大量对象)并将其存储在本地。完成后,另一个脚本需要解析下载的JSON文件,并将每个对象插入MySQL数据库。 我目前正在使用和。这将尝试在尝试处理之前将整个文件读入内存。除了我的JSON文件通常在250MB-1GB +之间的事实之外,这将很好。我知道我可以增加我的PHP内存限制,但这在我看来似乎并不是最大的答案。我知道我可以运行

  • 问题内容: 我正在开发一个应用程序,其中我正在使用来自服务器的json格式的数据。但是我能够解析普通的json数据,但是无法解析带有数组的json数据, json响应如下 我如何读取此json数组? 注意 :我正在使用Litjson进行解析。 问题答案: 您应该按照POCO对象创建自己: LitJSON将立即反序列化此序列: 作为替代方案,您可以使用非通用变量(下面的示例会将所有数据写入控制台):

  • 问题内容: 我想解析JSON数组并使用gson。首先,我可以记录JSON输出,服务器清楚地响应客户端。 这是我的JSON输出: 我尝试了这种结构进行解析。一个类,该类取决于单个JSONArray 和所有JSONArray。 上课时间: 当我尝试使用gson时,没有错误,没有警告,也没有日志: 怎么了,我该怎么解决? 问题答案: 您可以直接解析直接类,不需要再花更多时间包装您的类,也不需要新的类: