【问题标题】:How to convert two character ('-' and '_') to JSON format如何将两个字符('-' 和 '_')转换为 JSON 格式
【发布时间】:2013-07-14 05:47:27
【问题描述】:

我想在 perl 中将以下两个字符(“-”和“_”)转换为 JSON 格式。 用作 JSON。 但我未能转换。我想知道如何转换这两个独特的字符。

格式

'--'    -> ':'
'-_'    -> '{'
'_-'    -> '}'
'__'    -> ','

这是我的程序

#!/usr/local/bin/perl

use strict;
use warnings;

sub toJsonFormat {
  my $self = shift;
  my $str = shift;

  $str =~ s/-_/{/g;
  $str =~ s/_-/}/g;
  $str =~ s/--/:/g;
  $str =~ s/__/,/g;                                                                                                          
  return $str;

}

这是示例

试用代码

toJsonFormat('-_service---_key--value_-__-_key--value_-__service---_key--value_-_-')

预计

"{service:{key:value},{key:value},service:{key:value}}"

得到

'{service:{key:value_{_{key:value_{_service:{key:value_{-'

如果您有任何转换为​​预期字符的想法,请告诉我。

提前致谢。

【问题讨论】:

  • 如何拆分字符串并将其存储在哈希中。然后你可以use JSONmetacpan.org/module/JSON
  • 我不明白。您的预期输出不是有效的 JSON。
  • @innaM 知道。由于我只能使用“-”和“_”,我不知道使用数组。所以转换后,我必须将该对象放入数组中。

标签: regex json string perl converter


【解决方案1】:

这应该可行:

my %h = (
'--'    => ':',
'-_'    => '{',
'_-'    => '}',
'__'    => ',',
);

my $rx = qr(-_|_-|--|__);

sub toJsonFormat {
  my $str = shift;

  $str =~ s/($rx)/$h{$1}/g;
  return $str;

}

print toJsonFormat('-_service---_key--value_-__-_key--value_-__service---_key--value_-_-')

因此,从您匹配的所有键中创建一个正则表达式并替换为相应的值...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-01
    • 2021-11-14
    • 1970-01-01
    • 2019-04-01
    • 2021-10-19
    • 2013-02-04
    • 2020-09-09
    • 1970-01-01
    相关资源
    最近更新 更多