微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Java 将复杂的键值对字符串转换为 json

如何解决使用 Java 将复杂的键值对字符串转换为 json

下面是我的键值对字符串。我尝试了很多方法,但无法解决在这里我不能用逗号进行任何拆分或用其他字符串替换。我从下面的代码和库中得到的结果是:

import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.Result;
import org.apache.tinkerpop.gremlin.driver.ResultSet;
    
ResultSet rs = client.submit(queryString);
List<Result> results = rs.all().get(); 
System.out.println(results.toString());


[result{object=path[{id=User6,label=User,ORIGIN=AWS,ACCOUNT_ID=196000000000,TENANT_ID=sigma,ORG_ID=379000000000,USER_NAME=BritTest1,USER_ID=AIDAS3L75VZIP4F7ROFS6,USER_ARN=arn:aws:iam::196226166352:user/BritTest1,sfid=6,STATUS=Ready,CREATED_AT=Tue Nov 24 05:30:00 IST 2020,UPDATED_AT=Tue Nov 24 05:30:00 IST 2020},{id=Rel26,label=User to Policy,IN={id=Policy56,label=Policy},OUT={id=User6,label=User},ACCOUNT_ID=196226000000.00,ORG_ID=378564000000.00,CREATED_AT=Wed Nov 25 05:30:00 IST 2020,UPDATED_AT=Wed Nov 25 05:30:00 IST 2020},{id=Policy56,label=Policy,ACCOUNT_ID=196226000000,ORG_ID=378564000000,CREATED_AT=Wed Oct 28 05:30:00 IST 2020,UPDATED_AT=Wed Oct 28 05:30:00 IST 2020,POLICY_NAME=BritReadS3Policy,POLICY_ID=ANPAS3L75VZIGNCUV274M,POLICY_ARN=arn:aws:iam::196226166352:policy/BritReadS3Policy,POLICY_DOCUMENT={"Statement":[{"Action":["s3:GetBucketPolicyStatus","s3:GetBucketPublicAccessBlock","s3:GetLifecycleConfiguration","s3:GetBucketTagging","s3:GetInventoryConfiguration","s3:GetBucketWebsite","s3:GetBucketLogging","s3:ListBucket","s3:GetAccelerateConfiguration","s3:GetBucketVersioning","s3:GetBucketAcl","s3:GetBucketNotification","s3:GetBucketPolicy","s3:GetBucketobjectLockConfiguration","s3:GetEncryptionConfiguration","s3:GetIntelligentTieringConfiguration","s3:GetBucketRequestPayment","s3:GetBucketCORS","s3:GetAnalyticsConfiguration","s3:GetMetricsConfiguration","s3:GetBucketownershipControls","s3:GetBucketLocation"],"Effect":"Allow","Resource":"arn:aws:s3:::testbritive","Sid":"VisualEditor0"},{"Action":"s3:ListAllMyBuckets","Resource":"*","Sid":"VisualEditor1"}],"Version":"2012-10-17"},SF_ID=56,POLICY_TYPE=Customer-Managed}] class=org.apache.tinkerpop.gremlin.structure.util.detached.Detachedpath},result{object=path[{id=User6,{id=Rel1066,IN={id=Policy138,{id=Policy138,ACCOUNT_ID=546836000000,POLICY_NAME=IAMUserChangePassword,POLICY_ID=NA,POLICY_ARN=arn:aws:iam::aws:policy/IAMUserChangePassword,POLICY_DOCUMENT={"Statement":[{"Action":["iam:ChangePassword"],"Resource":["arn:aws:iam::*:user/${aws:username}"]},{"Action":["iam:GetAccountPasswordPolicy"],"Resource":"*"}],SF_ID=138,POLICY_TYPE=AWS-Managed}] class=org.apache.tinkerpop.gremlin.structure.util.detached.Detachedpath}]

解决方法

你可以使用 ObjectMapper 来做这种类型的转换 添加这些依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>

然后尝试以下...

ObjectMapper objectMapper = newObjectMapper();
try{
    String json = objectMapper.writeValueAsString(mapYouWantToConvert);
    System.out.println(json);
} catch(JsonProcessingException e){
    e.printStackTrace();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。