Java 改装的正确JSON响应+;格森?
我对我的一个web服务有以下回应,我正在使用改型和GSONJava 改装的正确JSON响应+;格森?,java,android,json,retrofit2,gson,Java,Android,Json,Retrofit2,Gson,我对我的一个web服务有以下回应,我正在使用改型和GSON { "error": false, "Timeline": { "Date": "2040-06-15", "bandList": { "breakfast": { "dosageList": { "01": { "packed": "tr
{
"error": false,
"Timeline": {
"Date": "2040-06-15",
"bandList": {
"breakfast": {
"dosageList": {
"01": {
"packed": "true",
"medicineList": [
{
"medicine": {
"id": "01",
"name": "glipizide 5 mg tablet, 100 ",
"category": "regular",
"image": null,
"indication": "NIDDM",
"packed": true,
"med_id": "352",
"dosage": 1
}
},
{
"medicine": {
"id": "04",
"name": "Frusemide (Terry White Chemists) 20 mg uncoated tablet, 100 ",
"category": "regular",
"image": null,
"indication": "Fluid",
"packed": true,
"med_id": "4",
"dosage": 2
}
}
]
},
"02": {
"packed": "false",
"medicineList": [
{
"medicine": {
"id": "05",
"name": "Refresh Tears Plus 0.5% eye drops solution, 15 mL ",
"category": "regular",
"image": null,
"indication": "Dry Eyes",
"packed": false,
"med_id": "372",
"dosage": 1
}
}
]
}
}
}
}
}
}
问题1。
有没有一种方法可以使用模型类(POJO)或不使用它们来解析上述响应?我一直在为上面的结构生成模型类。如何为上述JSON生成POJO
问题2。我正处于如何说服发送以下响应的位置,JSON的正确结构/格式是什么?是否有任何JSON标准可以向web开发人员展示以获得这种JSON格式?(注意:我可以解析这个结构)
}
先谢谢你
编辑
我曾经使用这些站点自动生成POJO,但对于某些类,它给出了以下响应。如何将其转换为适当的类
package ;
public class DosageList
{
private 01 01;
private 02 02;
public void set01(01 01){
this.01 = 01;
}
public 01 get01(){
return this.01;
}
public void set02(02 02){
this.02 = 02;
}
public 02 get02(){
return this.02;
}
}
编辑2
我几乎完成了对第一个JSON的解析,但仍停留在这里
for (String bandName: event.getTimeline().getBand().keySet()) {
Log.d("<<<--Band-->>>", "Value " + event.getTimeline().getBand().get(bandName));
Band band = event.getTimeline().getBand().get(bandName);
for (String dosageName:band.getDosage().keySet()) {
Dosage dosage = band.getDosage().get(dosageName);
Log.d("<<<--Dosage-->>>", "Value " + dosage.getMedicine());
for (Medicine medicine: dosage.getMedicine()) {
Log.d("<<<--Medicine-->>>", "Value " + dosage.getMedicine().get(0));
}
}
}
for(字符串bandName:event.getTimeline().getBand().keySet()){
Log.d(“,”Value“+event.getTimeline().getBand().get(bandName));
Band Band=event.getTimeline().getBand().get(bandName);
对于(字符串dosageName:band.getdose().keySet()){
剂量剂量=band.getdose().get(dosageName);
Log.d(“,”Value“+剂量.getMedicine());
用于(药物:剂量。getMedicine()){
Log.d(“,”值“+剂量.getMedicine().get(0));
}
}
}
如何检索药品价值?关于第一个问题:
您可以在不使用POJO类的情况下解析JSON,但建议使用
他们和你都在犹豫从JSON生成他们
我想你可以用
这是最好的
对于第二个问题:
是的,JSON有一些标准,你可以在网站上找到它们。步骤1:首先从最里面的JSON对象开始,我能看到的是“medicine” 创建一个类似这样的POJO类
public class Medicine implements android.os.Parcelable {
@SerializedName("id")
private String id;
// Getter setter method for id
// Do it for all the JSON tags
}
public class MedicineList implements Parcelable {
@SerializedName("medicineList")
private List<Medicine > medicine;
// Getter setter can go here
}
步骤2:为“medicineList”创建一个类
public class Medicine implements android.os.Parcelable {
@SerializedName("id")
private String id;
// Getter setter method for id
// Do it for all the JSON tags
}
public class MedicineList implements Parcelable {
@SerializedName("medicineList")
private List<Medicine > medicine;
// Getter setter can go here
}
公共类MedicineList实现可包裹{
@序列化名称(“药物列表”)
私人列表医学;
//盖特·塞特可以到这里来
}
以类似的方式,只需在JSON响应中移动到基本标记的外部。这让我很容易理解。我没有发布完整的解决方案,因为这是你在EOD的家庭作业。第一季度的解决方案-
是的,您可以通过在Android Studio中安装DTO插件,使用模型类解析上述响应。插件将自动为响应创建POJO类 公共级医学
public class Medicine
{
private String id;
private String name;
private String category;
private String image;
private String indication;
private boolean packed;
private String med_id;
private int dosage;
public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setCategory(String category){
this.category = category;
}
public String getCategory(){
return this.category;
}
public void setImage(String image){
this.image = image;
}
public String getImage(){
return this.image;
}
public void setIndication(String indication){
this.indication = indication;
}
public String getIndication(){
return this.indication;
}
public void setPacked(boolean packed){
this.packed = packed;
}
public boolean getPacked(){
return this.packed;
}
public void setMed_id(String med_id){
this.med_id = med_id;
}
public String getMed_id(){
return this.med_id;
}
public void setDosage(int dosage){
this.dosage = dosage;
}
public int getDosage(){
return this.dosage;
}
}
import java.util.ArrayList;
import java.util.List;
public class Dosage
{
private String id;
private String packed;
private List<Medicine> medicine;
public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setPacked(String packed){
this.packed = packed;
}
public String getPacked(){
return this.packed;
}
public void setMedicine(List<Medicine> medicine){
this.medicine = medicine;
}
public List<Medicine> getMedicine(){
return this.medicine;
}
}
import java.util.ArrayList;
import java.util.List;
public class Band
{
private String name;
private List<Dosage> dosage;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setDosage(List<Dosage> dosage){
this.dosage = dosage;
}
public List<Dosage> getDosage(){
return this.dosage;
}
}
import java.util.ArrayList;
import java.util.List;
public class Timeline
{
private DateTime Date;
private List<Band> band;
public void setDate(DateTime Date){
this.Date = Date;
}
public DateTime getDate(){
return this.Date;
}
public void setBand(List<Band> band){
this.band = band;
}
public List<Band> getBand(){
return this.band;
}
}
public class Root
{
private boolean error;
private Timeline Timeline;
public void setError(boolean error){
this.error = error;
}
public boolean getError(){
return this.error;
}
public void setTimeline(Timeline Timeline){
this.Timeline = Timeline;
}
public Timeline getTimeline(){
return this.Timeline;
}
}
{
私有字符串id;
私有字符串名称;
私有字符串类别;
私有字符串图像;
私有字符串指示;
私有布尔压缩;
私有字符串med_id;
私人剂量;
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getId(){
返回此.id;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getName(){
返回此.name;
}
公共无效集合类别(字符串类别){
this.category=类别;
}
公共字符串getCategory(){
返回此.category;
}
公共void setImage(字符串图像){
这个图像=图像;
}
公共字符串getImage(){
返回此.image;
}
公共无效设置指示(字符串指示){
这个指示=指示;
}
公共字符串getIndication(){
返回此项指示;
}
公共void集合压缩(布尔压缩){
这是包装好的;
}
公共布尔getPacked(){
把这个包装好的还给我;
}
公共无效设置med_id(字符串med_id){
this.med_id=med_id;
}
公共字符串getMed_id(){
返回此.med_id;
}
公共剂量(国际剂量){
这个剂量=剂量;
}
公共剂量{
退回这个剂量;
}
}
导入java.util.ArrayList;
导入java.util.List;
公共级剂量
{
私有字符串id;
私有字符串压缩;
私人列表医学;
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getId(){
返回此.id;
}
公共无效设置压缩(字符串压缩){
这是包装好的;
}
公共字符串getPacked(){
把这个包装好的还给我;
}
公共医学(列表医学){
这是医学;
}
公共医疗清单(){
还这个药;
}
}
导入java.util.ArrayList;
导入java.util.List;
公营乐队
{
私有字符串名称;
私人列表剂量;
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getName(){
返回此.name;
}
公共剂量(列表剂量){
这个剂量=剂量;
}
公共列表{
退回这个剂量;
}
}
导入java.util.ArrayList;
导入java.util.List;
公共类时间线
{
私人日期时间日期;
私人名单波段;
公共作废设置日期(日期时间日期){
这个日期=日期;
}
public DateTime getDate(){
返回此日期;
}
公共区域和(列表栏){
这个.波段=波段;
}
公共列表getBand(){
返回此.band;
}
}
公共类根
{
私有布尔错误;
私人时间表;
public void setError(布尔错误){
this.error=错误;
}
公共布尔getError(){
返回这个错误;
}
公共无效集合时间线(时间线){
时间线=时间线;
}
公共时间线getTimeline(){
返回此。时间线;
}
}
…享受…谢谢您的回答。请检查我编辑的问题。谢谢你的回答。请检查我编辑的问题。嗨,桑贾娜,在你和其他人的帮助下,我几乎完成了。请告诉我如何获得药品价值?(请检查我的编辑2)