Description
When converting an instance of McpSchema.TextContent to JSON using Jackson's ObjectMapper, the resulting JSON contains a duplicate "type" field. This is incorrect and could lead to parsing issues or unexpected behavior in systems consuming this JSON.
Steps to Reproduce
- Create an instance of
McpSchema.TextContent
- Serialize it to JSON using Jackson's
ObjectMapper
- Observe the output contains a duplicate "type" field
@Test
void testContent() throws Exception {
McpSchema.TextContent test = new McpSchema.TextContent("XXX");
String value = new ObjectMapper().writeValueAsString(test);
assertEquals(
"""
{"type":"text","type":"text","text":"XXX"}""",
value);
}
Expected Behavior
The JSON output should have only one "type" field:
{"type":"text","text":"XXX"}
Actual Behavior
The JSON output contains a duplicate "type" field:
{"type":"text","type":"text","text":"XXX"}
Possible Cause
This is likely due to a field and a getter method both being annotated with @JsonProperty("type") in the McpSchema.TextContent class, or the field might be defined twice in the class hierarchy.
Environment
- Java version: 21.0.5
- Spring AI version: 1.0.0-M6
Description
When converting an instance of
McpSchema.TextContentto JSON using Jackson'sObjectMapper, the resulting JSON contains a duplicate "type" field. This is incorrect and could lead to parsing issues or unexpected behavior in systems consuming this JSON.Steps to Reproduce
McpSchema.TextContentObjectMapperExpected Behavior
The JSON output should have only one "type" field:
{"type":"text","text":"XXX"}Actual Behavior
The JSON output contains a duplicate "type" field:
{"type":"text","type":"text","text":"XXX"}Possible Cause
This is likely due to a field and a getter method both being annotated with
@JsonProperty("type")in theMcpSchema.TextContentclass, or the field might be defined twice in the class hierarchy.Environment