Java 使用改型2的JSON嵌套模式引用
我对改型2和Android/后端编程比较陌生,我想知道如何正确地将我的JSON模式转换为Android学校项目的Java 所以现在的情况是,我需要在我的应用程序中加入一些“挑战”。 目前的结构有点复杂,我甚至不确定我们是否工作正常,但我会在这里试一试 以下是REST后端上的mongoose模式: Challenge:这个对象保存所有普通属性和对challengeType的引用,因为我们的挑战是由多态性定义的Java 使用改型2的JSON嵌套模式引用,java,android,json,mongoose,retrofit,Java,Android,Json,Mongoose,Retrofit,我对改型2和Android/后端编程比较陌生,我想知道如何正确地将我的JSON模式转换为Android学校项目的Java 所以现在的情况是,我需要在我的应用程序中加入一些“挑战”。 目前的结构有点复杂,我甚至不确定我们是否工作正常,但我会在这里试一试 以下是REST后端上的mongoose模式: Challenge:这个对象保存所有普通属性和对challengeType的引用,因为我们的挑战是由多态性定义的 var ChallengeSchema = new Schema({ _id: Obje
var ChallengeSchema = new Schema({
_id: ObjectId,
name: String,
description: [String],
challengeType:{
type: Schema.ObjectId, ref: 'ChallengeType'
},
state: Number,
difficulty: Number
});
现在,我们的挑战类型定义为:
var ChallengeTypeSchema = new Schema({
_id: ObjectId
}),
RecipeChallengeSchema = new Schema({
_id: ObjectId,
joined: Number,
dietTypeMaker: {
type: Schema.ObjectId, ref: 'DietTypeMaker'
}
}),
FastfoodChallengeSchema = new Schema({
_id: ObjectId,
joined: Number
}),
ThursdayVeggieDayChallengeSchema = new Schema({
_id: ObjectId,
joined: Number,
dietTypeMaker1: {
type: Schema.ObjectId, ref: 'DietTypeMaker'
},
dietTypeMaker2: {
type: Schema.ObjectId, ref: 'DietTypeMaker'
}
}),
RestaurantChallengeSchema = new Schema({
_id: ObjectId,
joined: Number,
city: {
type: Schema.ObjectId, ref: 'City'
},
restaurantTypeMaker: {
type: Schema.ObjectId, ref: 'RestaurantTypeMaker'
}
});
module.exports = mongoose.model('ChallengeType',ChallengeTypeSchema,'challengeTypes');
module.exports = mongoose.model('RecipeChallenge', RecipeChallengeSchema, 'challengeTypes', ['ChallengeType']);
module.exports = mongoose.model('FastfoodChallenge', FastfoodChallengeSchema, 'challengeTypes', ['RecipeChallenge']);
module.exports = mongoose.model('ThursdayVeggieDayChallenge', ThursdayVeggieDayChallengeSchema, 'challengeTypes', ['RecipeChallenge']);
module.exports = mongoose.model('RestaurantChallenge', RestaurantChallengeSchema, 'challengeTypes', ['ChallengeType']);
这些与DietTypeMaker或RestaurantTypeMaker相关,后者根据当前的挑战决定我们的食谱或餐厅
var RestaurantTypeMakerSchema = new Schema({
_id: ObjectId,
eatingPlace: {
restaurants: [
{
type: Schema.ObjectId, ref: 'Restaurant'
}
]
},
gastronomic: {
restaurants: [
{
type: Schema.ObjectId, ref: 'Restaurant'
}
]
},
snackbar: {
restaurants: [
{
type: Schema.ObjectId, ref: 'Restaurant'
}
]
},
catering: {
restaurants: [
{
type: Schema.ObjectId, ref: 'Restaurant'
}
]
}
});
及
其中每一项都涉及一个食谱或一家餐厅:
var RecipeSchema = new Schema({
_id: ObjectId,
title: String,
difficultyRate: Number,
ingredients: [
{
name: String,
qty: String
}
],
description: [String],
extraInfo: {
preparationTime: Number,
cookDifficulty: Number,
recipeType: Number,
dietTypes: [Number],
isFastFood: Boolean
},
image: {
data: Buffer, contentType: String
}
});
及
所有这些都需要转换为我们应用程序的java代码。现在我知道了怎么做pojo了,我已经为食谱和餐馆做过了。我可以使用改型2从后端正确获取它们。现在我一直关注的是我们所有模式引用的复杂结构
我们让事情变得复杂了吗,或者这是可能的
var RecipeSchema = new Schema({
_id: ObjectId,
title: String,
difficultyRate: Number,
ingredients: [
{
name: String,
qty: String
}
],
description: [String],
extraInfo: {
preparationTime: Number,
cookDifficulty: Number,
recipeType: Number,
dietTypes: [Number],
isFastFood: Boolean
},
image: {
data: Buffer, contentType: String
}
});
var RestaurantSchema = new Schema({
_id: ObjectId,
name: String,
streetName: String,
houseNumber: Number,
city: {
type: Schema.ObjectId, ref: 'City'
},
restaurantTypes: [Number],
preferences: [Number],
websiteLink: String,
emailaddress: String,
description: [String]
});