Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 将JSON解析为TextInputItemText字段_Java_Android_Json - Fatal编程技术网

Java 将JSON解析为TextInputItemText字段

Java 将JSON解析为TextInputItemText字段,java,android,json,Java,Android,Json,当设备扫描条形码时,我需要对SQL表进行查询,如果有JSON数据,我必须将JSON解析为文本输入编辑文本字段,并将brand_name放入spinner,实际上为用户填充字段。我不知道如何将其解析为单独的字段。有人能帮我吗 这是我的JSON: “计数”:“50”, “地段”:“100620”, “品牌名称”:“示例”, “变体”:“ZS/N 0,75 x 60”, “净含量”:“20”, “测量单位”:“千克”, “sscc”:“086060197000151569”, “同步”:“否”, “战

当设备扫描条形码时,我需要对SQL表进行查询,如果有JSON数据,我必须将JSON解析为文本输入编辑文本字段,并将brand_name放入spinner,实际上为用户填充字段。我不知道如何将其解析为单独的字段。有人能帮我吗

这是我的JSON:

“计数”:“50”, “地段”:“100620”, “品牌名称”:“示例”, “变体”:“ZS/N 0,75 x 60”, “净含量”:“20”, “测量单位”:“千克”, “sscc”:“086060197000151569”, “同步”:“否”, “战争组类型”:“123示例”

我对Java非常陌生,我在Android Studio工作,谢谢

您可以使用来序列化/反序列化JSON消息

您必须创建一个与JSON消息的结构相同的类。在您的情况下,类似于:

public class Foo{
    public String count, lot, brand_name, variant, net_content, unit_of_measure, sync, war_group_type;
}
然后,考虑到您将JSON完整消息放在一个名为
jsonString
的字符串中进行解析,您可以这样做:

Gson gson = new Gson();
Foo m = gson.fromJson(jsonString, Foo.class); 
 @SerializedName('brand_name')
 String brandName;
之后,您应该能够独立访问每个参数:

Toast.makeText (getContext(), "Brand name is: " + m.brand_name, Toast.LENGTH_SHORT).show();
进一步的建议/注意事项:

  • 默认情况下,Gson库会将类中定义的字段映射到响应中定义的JSON键。但是,您可以使用
    @SerializedName
    为参数指定键,而不是使用字段名。一个示例是定义如下的Foo类字段:

    Gson gson = new Gson();
    Foo m = gson.fromJson(jsonString, Foo.class); 
    
     @SerializedName('brand_name')
     String brandName;
    
  • 虽然它似乎不适用于您的情况,但请查看如何解析下面链接上的列表结构

  • 通过查看JSON结构,确保每个字段的格式正确。例如
    “count”:“50”
    表示应该将其解析为字符串,而
    “count”:50,
    可以解析为数字(int/long/float…)


您可以找到更多信息。

非常感谢您的好意,先生!虽然这对我来说有点困惑,但我会尽我最大的努力解决它。