org.msgpack.value.Value.asMapValue()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(18.6k)|赞(0)|评价(0)|浏览(109)

本文整理了Java中org.msgpack.value.Value.asMapValue()方法的一些代码示例,展示了Value.asMapValue()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Value.asMapValue()方法的具体详情如下:
包路径:org.msgpack.value.Value
类名称:Value
方法名:asMapValue

Value.asMapValue介绍

[英]Returns the value as MapValue. Otherwise throws MessageTypeCastException. Note that you can't use instanceof or cast ((MapValue) thisValue) to check type of a value because type of a mutable value is variable.
[中]将值作为MapValue返回。否则抛出MessageTypeCastException。请注意,不能使用instanceof或强制转换((MapValue) thisValue)来检查值的类型,因为可变值的类型是可变的。

代码示例

代码示例来源:origin: embulk/embulk

@Test
public void useSkipInvalidEscapeString() throws Exception {
  ConfigSource config = this.config.deepCopy().set("invalid_string_escapes", "SKIP");
  transaction(config, fileInput(
      "{\"\\a\":\"b\"}\\"
  ));
  List<Object[]> records = Pages.toObjects(plugin.newSchema(), output.pages);
  assertEquals(1, records.size());
  Object[] record = records.get(0);
  Map<Value, Value> map = ((Value) record[0]).asMapValue().map();
  assertEquals(newString("b"), map.get(newString("")));
}

代码示例来源:origin: embulk/embulk

@Test
public void useUnEscapeInvalidEscapeString() throws Exception {
  ConfigSource config = this.config.deepCopy().set("invalid_string_escapes", "UNESCAPE");
  transaction(config, fileInput(
      "{\"\\a\":\"b\"}\\"
  ));
  List<Object[]> records = Pages.toObjects(plugin.newSchema(), output.pages);
  assertEquals(1, records.size());
  Object[] record = records.get(0);
  Map<Value, Value> map = ((Value) record[0]).asMapValue().map();
  assertEquals(newString("b"), map.get(newString("a")));
}

代码示例来源:origin: embulk/embulk

map = ((Value) record[0]).asMapValue().map();
assertTrue(((Value) record[0]).asMapValue().map().isEmpty());
map = ((Value) record[0]).asMapValue().map();

代码示例来源:origin: org.msgpack/msgpack-core

@Override
public boolean equals(Object o)
{
  if (o == this) {
    return true;
  }
  if (!(o instanceof Value)) {
    return false;
  }
  Value v = (Value) o;
  if (!v.isMapValue()) {
    return false;
  }
  MapValue mv = v.asMapValue();
  return map().equals(mv.map());
}

代码示例来源:origin: sonots/embulk-filter-column

public Value visit(String rootPath, Value value)
  {
    if (! shouldVisit(rootPath)) {
      return value;
    }
    if (value == null) {
      return null;
    }
    else if (value.isArrayValue()) {
      return visitArray(rootPath, value.asArrayValue());
    }
    else if (value.isMapValue()) {
      return visitMap(rootPath, value.asMapValue());
    }
    else {
      return value;
    }
  }
}

代码示例来源:origin: komamitsu/fluency

@Test
public void ingestWithoutAck()
    throws IOException
{
  Ingester ingester = new FluentdIngester(new FluentdIngester.Config(), fluentdSender);
  ingester.ingest(TAG, ByteBuffer.wrap(DATA));
  verify(fluentdSender, times(1)).send(byteBuffersArgumentCaptor.capture());
  List<ByteBuffer> byteBuffers = byteBuffersArgumentCaptor.getAllValues().get(0);
  byte[] ingested = getIngestedData(byteBuffers);
  MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(ingested);
  ImmutableArrayValue arrayValue = unpacker.unpackValue().asArrayValue();
  assertEquals(3, arrayValue.size());
  assertEquals(TAG, arrayValue.get(0).asStringValue().asString());
  assertArrayEquals(DATA, arrayValue.get(1).asRawValue().asByteArray());
  Map<Value, Value> options = arrayValue.get(2).asMapValue().map();
  assertEquals(1, options.size());
  assertEquals(DATA.length,
      options.get(ValueFactory.newString("size")).asIntegerValue().asInt());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visit_withColumnNameIncludingSingleQuotes()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      " - {name: \"$['\\\\'json1']['k1']\"}");
  Schema inputSchema = Schema.builder()
      .add("'json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":"v"}
  Value k1 = ValueFactory.newString("k1");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(k1, v);
  MapValue visited = subject.visit("$['\\'json1']", map).asMapValue();
  assertEquals("{\"k1\":\"v\"}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_columnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      "  - {name: \"$['json1']['k1']\"}",
      "  - {name: \"$['json1']['k2']['k2']\"}",
      "  - {name: \"$['json1']['k3']['k3']\", type: string, default: v}",
      "  - {name: \"$['json1']['k4']\", src: \"$['json1']['k2']\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k1":"v","k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{\"k1\":\"v\"},\"k2\":{\"k2\":\"v\"},\"k3\":{\"k3\":\"v\"},\"k4\":{\"k2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visit_withDotAndBracket()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      " - {name: \"$.json1['k_1']\"}",
      " - {name: \"$.json1['k_1'][0]['k_1']\"}",
      " - {name: \"$['json1']['k_2']\"}",
      " - {name: \"$['json1']['k_2']['k_2']\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k.1":[{"k.1":"v"}], "k.2":{"k.2":"v"}}
  Value k1 = ValueFactory.newString("k_1");
  Value k2 = ValueFactory.newString("k_2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k_1\":[{\"k_1\":\"v\"}],\"k_2\":{\"k_2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitArray_columnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      "  - {name: \"$['json1']['k1'][1]\", src: \"$['json1']['k1'][0]\"}",
      "  - {name: \"$['json1']['k2'][0]\"}",
      "  - {name: \"$['json1']['k3'][0]['k3']\", type: string, default: v}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":[{"k1":"v"},"v"],"k2":["v","v"]}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v), v),
      k2, ValueFactory.newArray(v, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":[{\"k1\":\"v\"}],\"k2\":[\"v\"],\"k3\":[{\"k3\":\"v\"}]}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_Columns()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      "  - {name: $.json1.k1}",
      "  - {name: $.json1.k2.k2}",
      "  - {name: $.json1.k3.k3, type: string, default: v}",
      "  - {name: $.json1.k4, src: $.json1.k2}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k1":"v","k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{\"k1\":\"v\"},\"k2\":{\"k2\":\"v\"},\"k3\":{\"k3\":\"v\"},\"k4\":{\"k2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_DropColumns()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "drop_columns:",
      "  - {name: $.json1.k1.k1}",
      "  - {name: $.json1.k2}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_addColumnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "add_columns:",
      "  - {name: \"$['json1']['k3']['k3']\", type: string, default: v}",
      "  - {name: \"$['json1']['k4']\", src: \"$['json1']['k2']\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{\"k1\":\"v\"},\"k2\":{\"k2\":\"v\"},\"k3\":{\"k3\":\"v\"},\"k4\":{\"k2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_AddColumns()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "add_columns:",
      "  - {name: $.json1.k3.k3, type: string, default: v}",
      "  - {name: $.json1.k4, src: $.json1.k2}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{\"k1\":\"v\"},\"k2\":{\"k2\":\"v\"},\"k3\":{\"k3\":\"v\"},\"k4\":{\"k2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitMap_dropColumnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "drop_columns:",
      "  - {name: \"$['json1']['k1']['k1']\"}",
      "  - {name: \"$['json1']['k2']\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":{"k1":"v"},"k2":{"k2":"v"}}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newMap(k1, v),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":{}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitArray_dropColumnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "drop_columns:",
      "  - {name: \"$['json1']['k1'][0]['k1']\"}",
      "  - {name: \"$['json1']['k2'][*]\"}"); // ending with [*] is allowed for drop_columns, but not for others
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":[{"k1":"v"}[,"k2":["v","v"]}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newArray(v, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":[{}],\"k2\":[]}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitArray_addColumnsUsingBracketNotation()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "add_columns:",
      "  - {name: \"$['json1']['k1'][1]\", src: \"$['json1']['k1'][0]\"}",
      "  - {name: \"$['json1']['k3'][0]['k3']\", type: string, default: v}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":[{"k1":"v"}],"k2":["v","v"]}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newArray(v, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":[{\"k1\":\"v\"},{\"k1\":\"v\"}],\"k2\":[\"v\",\"v\"],\"k3\":[{\"k3\":\"v\"}]}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visit_withSingleQuotesAndDoubleQuotes()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      " - {name: \"$['json1']['k_1']\", src: \"$['json1']['k.1']\"}",
      " - {name: '$[\"json1\"][\"k_1\"][0][\"k_1\"]', src: '$[\"json1\"][\"k_1\"][0][\"k.1\"]'}",
      " - {name: '$[\"json1\"][\"k_2\"]', src: '$[\"json1\"][\"k.2\"]'}",
      " - {name: '$[\"json1\"][\"k_2\"][\"k_2\"]', src: '$[\"json1\"][\"k_2\"][\"k.2\"]'}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k.1":[{"k.1":"v"}], "k.2":{"k.2":"v"}}
  Value k1 = ValueFactory.newString("k.1");
  Value k2 = ValueFactory.newString("k.2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k_1\":[{\"k_1\":\"v\"}],\"k_2\":{\"k_2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visit_withComplexRename()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "columns:",
      " - {name: \"$.json1['k____1']\", src: \"$.json1['k.-=+1']\"}",
      " - {name: \"$.json1['k____1'][0]['k____1']\", src: \"$.json1['k____1'][0]['k.-=+1']\"}",
      " - {name: \"$['json1']['k_2']\", src: \"$['json1']['k.2']\"}",
      " - {name: \"$['json1']['k_2']['k_2']\", src: \"$['json1']['k_2']['k.2']\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k.1":[{"k.1":"v"}], "k.2":{"k.2":"v"}}
  Value k1 = ValueFactory.newString("k.-=+1");
  Value k2 = ValueFactory.newString("k.2");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newMap(k2, v));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k____1\":[{\"k____1\":\"v\"}],\"k_2\":{\"k_2\":\"v\"}}", visited.toString());
}

代码示例来源:origin: sonots/embulk-filter-column

@Test
public void visitArray_DropColumns()
{
  PluginTask task = taskFromYamlString(
      "type: column",
      "drop_columns:",
      "  - {name: \"$.json1.k1[0].k1\"}",
      "  - {name: \"$.json1.k2[*]\"}", // ending with [*] is allowed for drop_columns, but not for others
      "  - {name: \"$.json1.k3[*].k1\"}");
  Schema inputSchema = Schema.builder()
      .add("json1", JSON)
      .add("json2", JSON)
      .build();
  JsonVisitor subject = jsonVisitor(task, inputSchema);
  // {"k1":[{"k1":"v"}],"k2":["v","v"],"k3":[{"k3":"v"}]}
  Value k1 = ValueFactory.newString("k1");
  Value k2 = ValueFactory.newString("k2");
  Value k3 = ValueFactory.newString("k3");
  Value v = ValueFactory.newString("v");
  Value map = ValueFactory.newMap(
      k1, ValueFactory.newArray(ValueFactory.newMap(k1, v)),
      k2, ValueFactory.newArray(v, v),
      k3, ValueFactory.newArray(ValueFactory.newMap(k1, v)));
  MapValue visited = subject.visit("$['json1']", map).asMapValue();
  assertEquals("{\"k1\":[{}],\"k2\":[],\"k3\":[{}]}", visited.toString());
}

相关文章