我的Controller返回一个MyObj对象列表(使用@ResponseBody)
public MyObj
{
int a;
int b;
}
Run Code Online (Sandbox Code Playgroud)
返回JSON如下所示:
[{"a":1,"b":2},{"a":2,"b":2}]
Run Code Online (Sandbox Code Playgroud)
我想包装这个JSON,所以它将返回如下内容:
{ "data": [{"a":1,"b":2},{"a":2,"b":2}]}
Run Code Online (Sandbox Code Playgroud)
从我读到的我需要启用SerializationConfig.Feature.WRAP_ROOT_VALUE或(?)在我的控制器上使用@JsonRootName("data").
还尝试了@XmlRootElement,似乎没什么用.知道用根名称包装对象列表的正确方法是什么?
我有两个实体:Employee和Team.

我想要的是EmployeeForm具有Name的Team.

如何使用AutoMapper实现此目的?
我目前的"解决方案"如下:
Mapper.CreateMap<Employee, EmployeeForm>()
.ForMember(dest => dest.TeamName, opt => opt.MapFrom(x => x.GetTeams().FirstOrDefault() != null ? string.Join(", ", x.GetTeams().Select(y=>y.Name)) : "n/a"));
Run Code Online (Sandbox Code Playgroud)
在我看来,这是可读的.
我想要的是一个通用方法,我可以传递一个实体,选择集合并说集合是否为null返回默认值,或者通过lambda表达式选择集合的属性.
c# many-to-many associations automapper object-object-mapping
我有一个与iOS Restkit相关的问题.我有来自远程服务器的父子关系数据,并NSManagedObject使用Restkit 将这些对象映射到对象.我目前遇到的问题是每次向服务器发出的请求都会消除"子"关系并将其替换为来自服务器的新数据.有没有办法避免这些并追加新的孩子?
例如:我有一个经典的Category - > Products关系.
Run Code Online (Sandbox Code Playgroud){"categories": [ { "cat_id": "1", "cat_title": "category 1", "cat_tag": 1, "product": [ { "prod_id": "1", "prod_name": "product 1", "prod_tag": 1 }, { "prod_id": "2", "prod_name": "product 2", "prod_tag": 1 } ] } ] }
这工作正常,一切都与CoreData上的关系妥善保存.但是,如果我向服务器发出另一个请求并有一个新的响应:
Run Code Online (Sandbox Code Playgroud){"categories": [ { "cat_id": "1", "cat_title": "category 1", "cat_tag": 1, "product": [ { "prod_id": "3", "prod_name": "product 3", "prod_tag": 1 }, { "prod_id": "4", "prod_name": "product 4", "prod_tag": 1 } ] } ] }
我将产品3和产品4替换数据库上的产品1和产品2.我确信我正确设置了所有的关系和主键.(这两个cat_id …
看来Spring MVC不知道如何将javascript“地图”映射到Java地图对象
在网络用户界面中,例如foo.jsp,
<script>
var myMap = {};
myMap["people"] = ["Alex","Bob","Charles","Dave"];
myMap["fruit"] = ["Apple","Orange"];
$.ajax({
type : "POST",
url : "/myURL",
data : "myMap=" + myMap, // I tried "myMap="+JSON.stringify(myMap), as well, it doesn't work neither
success : function(response) {
alert("Success! response = " + response);
},
error : function(e) {
alert("AJAX error");
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有一个数据模型类,仅用于从Web UI接收数据。
@Setter @Getter
class Parameters {
private Map<String, List<String>> myMap; //this is the java class I want to map the string to
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 AutoMapper 来映射这样的类:
class FooDTO
{
public int X { get; set; }
public EmbeddedDTO Embedded { get; set; }
public class EmbeddedDTO
{
public BarDTO Y { get; set; }
public BazDTO Z { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
对于这样的类:
class Foo
{
public int X { get; set; }
public Bar Y { get; set; }
public Baz Z { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
(FooDTO是HAL资源)
我知道我可以通过像这样显式创建地图来做到这一点:
Mapper.CreateMap<FooDTO, Foo>()
.ForMember(f => f.Y, c => c.MapFrom(f …Run Code Online (Sandbox Code Playgroud) 我试图以一种方式解组json文件,使得Json的少数属性被映射到我的模型类中存在的HashMap.属性的重置被映射到类的相应字段.请在下面找到Json:
{
"_id":2,
"Name":"xyz",
"Age":20,
"MEMO_TEXT":"yyy",
"MEMO_LINK":"zzz",
"MEMO_DOB":"",
"MEMO_USERNAME":"linie orange",
"MEMO_CATEGORY":2,
"MEMO_UID":"B82071415B07495F9DD02C152E4805EC"
}
Run Code Online (Sandbox Code Playgroud)
这里是我要映射这个Json的Model类:
public class Model{
private int _id;
private String name;
private int age
private HashMap<String, String> columns;
//Getters and Setter methods
}
Run Code Online (Sandbox Code Playgroud)
所以在这里,我想要的是获得一个columns包含密钥的地图"MEMO_TEXT","MEMO_LINK","MEMO_DOB","MEMO_USERNAME","MEMO_CATEGORY","MEMO_UID"
Json中的其余属性映射到它们各自的字段.
是否可以使用杰克逊图书馆的ObjectMapper来做到这一点?
我有一个相当大的 bean(约 100 个属性)映射到几个较小的对象中。可能会出现较小的目标对象具有与我的源 bean 中名称相同但语义不同的属性。
我希望MapStruct在这种特定情况下只映射我使用@Mapping注释明确告诉的内容,而不执行通常的自动映射。
该MapStruct文档告诉我,仅此:
在生成的方法实现中,来自源类型 (...) 的所有可读属性都将被复制到目标类型 (...) 中的相应属性中。
我没有找到任何关闭此行为的配置选项。可以做到吗?
我正在尝试使用ExpressMapper将数据实体映射到模型。
如果我直接将实体映射到模型(它们都具有相同的属性),那么它工作正常。
但是,如果我将链接的实体映射到模型,则会出现错误
发生错误:System.MissingMethodException:没有为此对象定义无参数构造函数。
数据库结构:
ExpressMapper注册:
Mapper.Register<DiscountDaysOfWeek, DiscountDaysOfWeekModel>()
.Member(dest => dest.DiscountDayId, src => src.DiscountDayId)
.Member(dest => dest.DiscountDaysOfWeekId, src => src.DiscountDaysOfWeekId)
.Member(dest => dest.DiscountId, src => src.DiscountId)
.Member(dest => dest.Discountday, src => src.DiscountDay.Day);
Run Code Online (Sandbox Code Playgroud)
像这样调用:
var disDays = discs.SelectMany(x => x.DiscountDaysOfWeeks)
.Map<IQueryable<DiscountDaysOfWeek>, IQueryable<DiscountDaysOfWeekModel>>();
Run Code Online (Sandbox Code Playgroud)
在调用时获取错误消息。
DiscountDaysOfWeekModel:
public class DiscountDaysOfWeekModel
{
public int DiscountDaysOfWeekId { get; set; }
public int DiscountId { get; set; }
public int DiscountDayId { get; set; }
public string Discountday { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
DiscountDayOfWeek(由EF生成)
public partial class …Run Code Online (Sandbox Code Playgroud) 我需要在对象之间进行一些映射(例如PersonModel到PersonViewModel),并正在研究实现此目的的不同方法。具体来说,我正在使用实体框架,并尝试将生成的模型映射到视图模型。
但是,我还没有找到有关如何执行此操作的列表的文章或资源。到目前为止,我遇到了以下问题:
您能否帮忙指出并详细说明现有的方法以及每种方法的利弊?例如,我看到有人提到Automapper与手动映射相比速度较慢?还是可能指出解决此问题的文章?
编辑:由于某些人可能会问我AutoMapper有什么问题,请参见:Automapper:如何将IList映射到EntityCollection
有人可以解释一下系统设计和面向对象设计之间的区别吗?
面向对象的设计涉及对象建模,并使用诸如抽象,封装,分解和概括之类的面向对象的概念。这两个设计都涉及建筑设计和概念设计。
是其他设计范式的子集之一吗?
architecture oop system-design object-oriented-analysis object-object-mapping
c# ×4
java ×3
.net ×2
automapper ×2
jackson ×2
json ×2
ajax ×1
architecture ×1
associations ×1
hal ×1
ios ×1
many-to-many ×1
map ×1
mapstruct ×1
objective-c ×1
oop ×1
orm ×1
restkit ×1
spring-mvc ×1