Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应为BEGIN_数组,但在第1行第2列为BEGIN_对象,jsonSyntax错误_Java_Android_Json_Hashset - Fatal编程技术网

Java 应为BEGIN_数组,但在第1行第2列为BEGIN_对象,jsonSyntax错误

Java 应为BEGIN_数组,但在第1行第2列为BEGIN_对象,jsonSyntax错误,java,android,json,hashset,Java,Android,Json,Hashset,我想将Hashset对象保存到SharedReference中,然后检索该数据。我正在将数据存储到hashset中,并使用Gson将对象转换为json。实际上,我正在将位图存储到Hashset中。我能够将Hashsetobject转换并保存为SharedReference。在检索json并将其转换为Hashset对象时,我遇到了问题 HashSet<images> img = new HashSet<images>(CIRCLES_LIMIT); 方法检索该对象

我想将
Hashset
对象保存到
SharedReference
中,然后检索该数据。我正在将数据存储到
hashset
中,并使用
Gson
将对象转换为
json
。实际上,我正在将位图存储到
Hashset
中。我能够将
Hashsetobject
转换并保存为
SharedReference
。在检索
json
并将其转换为
Hashset
对象时,我遇到了问题

HashSet<images> img = new HashSet<images>(CIRCLES_LIMIT);
方法检索该对象

   public void openString() {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
    Gson gson = new Gson();

    String jsonSquare=sharedPrefs.getString("kEySquare",null);



  Type typeSquare = new TypeToken<HashSet<images>>(){}.getType();
    HashSet<images> arrayListSquare = gson.fromJson(jsonSquare,typeSquare);`//getting Exception here jsonSyntax Error`


    if (arrayListSquare != null) {
        img = arrayListSquare;
    }
}
public void openString(){
SharedReferences SharedRefers=PreferenceManager.GetDefaultSharedReferences(getContext());
Gson Gson=新的Gson();
字符串jsonSquare=sharedPrefs.getString(“kEySquare”,null);
Type typeSquare=new-TypeToken(){}.getType();
HashSet arrayListSquare=gson.fromJson(jsonSquare,typeSquare);`//在这里获取异常jsonSyntax错误`
if(arrayListSquare!=null){
img=阵列列表平方;
}
}

根据您的评论,您的
json
格式不正确,因此
Gson
可以在您在
string
中接收圆属性时对其进行解析,而不是作为
json

{
  "img": "[Circle[218.69626, 475.58936, 0,android.graphics.Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]‌​, Circle[186.74065, 670.43713, 0,android.graphics.Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]‌​]"
}
因此,您的
Json
将作为对象接收,该对象只有
img
属性


您正在将其解析为数组。这是错误的。因此,请与您的后端开发人员联系,并相应地更改
json
结构。

根据您的评论,您的
json
格式不正确,因此
Gson
可以在接收
string
中的圆圈属性时解析它,而不是
json

{
  "img": "[Circle[218.69626, 475.58936, 0,android.graphics.Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]‌​, Circle[186.74065, 670.43713, 0,android.graphics.Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]‌​]"
}
因此,您的
Json
将作为对象接收,该对象只有
img
属性


您正在将其解析为数组。这是错误的。因此,请与后端开发人员联系,并相应地更改
json
结构。

您序列化了一个对象,并希望将其反序列化为哈希集。这就是问题所在

Object spSquare = c.getStringDrawObjImages();
spSquare是什么类型的?假设它是'Foo.class',您应该像这样反序列化它:

Foo foo = gson.fromJson(jsonString, Foo.class);

“foo.img”应该是您的哈希集

您序列化了一个对象,并希望将其反序列化为哈希集。这就是问题所在

Object spSquare = c.getStringDrawObjImages();
spSquare是什么类型的?假设它是'Foo.class',您应该像这样反序列化它:

Foo foo = gson.fromJson(jsonString, Foo.class);

'foo.img'应该是你的HashSet

分享你的json{“img”:“[Circle[218.69626475.58936,0,android.graphics。Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,],圆圈[186.74065670.43713,0,android.graphics。Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]]“}共享您的json{“img”:“[Circle[218.69626475.58936,0,android.graphics。Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,],圆圈[186.74065670.43713,0,android.graphics。Bitmap@42e13c70,0.0,0.0,0.0,0.0,0.0,0.0,]]" }事实上,我已经在jsonlint.com中检查了json,它显示有效json@NitinMakwana它是有效的json,但对于通过GSONI解析为数组无效是否可以将位图转换为json?@NitinMakwana您需要将图像转换为Base64字符串,然后可以通过json将其作为字符串发送。但在服务器上,您需要将Base64字符串更改为图像。@NitinMakwana reference。但是如果有图像日志,那么我建议在JSONA中设置这些图像的url。实际上,我已经在jsonlint.com中检查了json,并且它显示有效json@NitinMakwana它是有效的json,但对于通过GSONI解析为数组无效。是否可以将位图转换为json?@NitinMakwana您需要将图像转换为Base64字符串,然后您可以通过json将其作为字符串发送。但在服务器上,您需要再次将Base64字符串更改为image。@NitinMakwana引用。但如果有图像日志,则我建议在JSONY中设置这些图像的url。您应该找到正确的类。spSquare的类型到底是什么?它似乎只有一个字段,即“im”而字段“img”原来是你的哈希集,不是吗?你应该找到正确的类。spSquare的类型到底是什么?它似乎只有一个字段是“img”,而字段“img”原来是你的哈希集,不是吗?