如何使用领域来分析一个大JSON和存储数据 [英] How I can use Realm to parse a large JSON and storing data

查看:304
本文介绍了如何使用领域来分析一个大JSON和存储数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

J'm真正进入受阻解析和使用领域存储数据,我有一个大的JSON和我创造所有的类模型,如境界的例子。

J'm really blocked into parsing and storing data using Realm,I have a large JSON and I creat all the class models like the example of RealM.

这是我的错误:产生的原因:org.json.JSONExcept
  离子:在io.realm.exceptions.RealmException值0 FR:无法
  地图的Json
              在io.realm.Realm.createObjectFromJson(Realm.java:860)
              在com.example.volleyapp2.ImagesActivity $ ImagesFragment.loadData(ImagesActivity.java:179)
              在com.example.volleyapp2.ImagesActivity $ ImagesFragment $ 2.onResponse(ImagesActivity.java:133)
              在com.example.volleyapp2.ImagesActivity $ ImagesFragment $ 2.onResponse(ImagesActivity.java:127)
              在com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
              在com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
              在android.os.Handler.handleCallback(Handler.java:615)
              在android.os.Handler.dispatchMessage(Handler.java:92)
              在android.os.Looper.loop(Looper.java:137)
              在android.app.ActivityThread.main(ActivityThread.java:4921)
              在java.lang.reflect.Method.invokeNative(本机方法)
              在java.lang.reflect.Method.invoke(Method.java:511)
              在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1027)
              在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
              在dalvik.system.NativeStart.main(本机方法)
       org.json.JSONException:所致值Fr在java.lang.String类型的0不能被转换为JSONObject的

this is my error :Caused by: org.json.JSONExcept ion: Value fr at 0 of io.realm.exceptions.RealmException: Could not map Json at io.realm.Realm.createObjectFromJson(Realm.java:860) at com.example.volleyapp2.ImagesActivity$ImagesFragment.loadData(ImagesActivity.java:179) at com.example.volleyapp2.ImagesActivity$ImagesFragment$2.onResponse(ImagesActivity.java:133) at com.example.volleyapp2.ImagesActivity$ImagesFragment$2.onResponse(ImagesActivity.java:127) at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65) at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) at dalvik.system.NativeStart.main(Native Method) Caused by: org.json.JSONException: Value fr at 0 of type java.lang.String cannot be converted to 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

and this my function to parse 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的:

and this my class model 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 /问题/ 575
创建ReamlList到remplace列表和我不能修改我的JSON

I used this link : https://github.com/realm/realm-java/issues/575 to create ReamlList to remplace List and I can't modify my JSON

推荐答案

服务器目前不支持基本数组。你JSON有这样的:

Realm currently doesn't support primitive arrays. You JSON has this:


语言:FR,恩]

有关领域的JSON自动映射到MyString的类它必须被转换为这样的事:

For Realm to automatically map the JSON to your MyString class it would have to be converted to something like this:


语言:[{海峡:FR},{海峡:恩}]

您也可以找到有关此GitHub上的更多信息: https://github.com /境界/境界-的Java /问题/ 575

You can also find more information about this on GitHub: https://github.com/realm/realm-java/issues/575

这篇关于如何使用领域来分析一个大JSON和存储数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆