我需要帮助将解析的JSON
消息中的文本存储到基于关键字的变量中。我的意思是,我有一个json
消息,我已经解析过一次,在该消息中,它返回如下内容:
Name: Kobe Bryant<br/>
Company: Lakers<br/>
Email: kobe@lakers.com<br/>
etc.
我希望能够查看这个测试块,看到它说“name:Kobe Bryant”,并将Kobe Bryant存储到一个名为“name”的字符串变量中,等等。我该怎么处理?
public class ParseTest {
public static void main(String[] args) throws Exception {
String name;
String company;
String email;
String phoneNumber;
String projectType;
String contactBy;
String timeFrame;
String message;
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
MainParser mp = mapper.readValue(new File("/Users/kane/VersionControl/LambdaTest/src/InfoBox.txt"), MainParser.class);
if ("blah".equals(mp.getTopicArn())) {
//Send to proposal table
System.out.println(mp.getSubject());
System.out.println(mp.getMessage());
} else if ("blah blah".equals(mp.getTopicArn())) {
//Send to infoBox table
System.out.println(mp.getMessage());
}
}
}
{
"Subject" : "Proposal Request (sent Wed May 22 2019 14:47:49 GMT-0400 (Eastern Daylight Time))",
"Message" : "Name: Kobe Bryant\nCompany: Lakers\nEmail: kobe@lakers.com"
}
private String Subject;
private String Message;
public String getSubject() {
return Subject;
}
public void setSubject(String subject) {
Subject = subject;
}
public String getMessage() {
return Message;
}
public void setMessage(String message) {
Message = message;
}
您有一个JSON
负载,其中一个值包含按新行\n
拆分的key:value
对中的数据。我们需要创建两个POJO
类:Message
用于根JSON
和person
-内部人员数据。这两个类可能如下所示:
class Message {
private String subject;
private String message;
// getters, setters, toString
}
class Person {
private String name;
private String company;
private String email;
// ... more properties
// getters, setters, toString
}
我们可以解析您的JSON
负载,如下所示:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import java.io.File;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class JsonApp {
public static void main(String[] args) throws Exception {
File jsonFile = new File("./resource/test.json").getAbsoluteFile();
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE);
Message message = mapper.readValue(jsonFile, Message.class);
String[] lines = message.getMessage().split("\n");
Map<String, String> properties = Stream.of(lines)
.map(i -> i.split(":"))
.filter(i -> i.length == 2)
.collect(Collectors.toMap(i -> i[0].trim(), i -> i[1].trim()));
Person person = mapper.convertValue(properties, Person.class);
System.out.println(person);
}
}
上面的示例打印了JSON
负载:
Person{name='Kobe Bryant', company='Lakers', email='kobe@lakers.com'}
问题内容: 是否有快速功能将通过接收到的JSON对象转换为字符串变量转储(用于跟踪/调试)? 问题答案: 是的,可以在此处找到,它包含在Firefox 3.5.4及更高版本中。 JSON字符串反方向,将JavaScript数据结构转换为JSON文本。 JSON不支持循环数据结构,因此请注意不要将循环结构提供给JSON字符串化器。 https://web.archive.org/web/201006
问题内容: 我正在入侵用于捕获SMTP电子邮件并处理邮件数据的Node程序。该库将邮件数据作为流提供,但我不知道如何将其转换为字符串。 我目前正在使用将其写入stdout ,但是正如我所说,我需要将流数据替换为字符串,一旦流结束,就可以使用它。 如何将所有数据从Node.js流收集到字符串中? 问题答案: 关键是使用Readable Stream 的和事件。听这些事件: 收到事件后,将新的数据块添
问题内容: 我正在尝试解析JSON中的字符串,但不确定如何执行此操作。这是我尝试解析为PHP数组的字符串的示例。 是否有一些库可以接受id,名称和电子邮件并将其放入数组中? 问题答案: 可以使用完成,请确保将第二个参数设置为,因为您需要数组而不是对象。 输出:
解析大型JSON字符串时出现内存溢出错误。 我见过几个使用GSON来流式处理大型JSON文档的例子,但我的问题是,我的JSON文档没有数百或数千行可以有效地标记化的“行”。它只包含一个base64节点,数据量约为15MB,例如。 如何将JSON文档中的单个base64字符串解析为文件并保存到文件系统,而不耗尽内存?使用StringBuilder将base64节点解析为字符串是导致当前OOM错误的原
问题内容: 如何获取并将其存储到变量中?我想在程序中使用稍后生成的字符串。 我对Java还是很陌生,所以我不太熟悉我认为它将是解决方案。或者,如果您有其他任何想法,请告诉我。谢谢 问题答案: 遵循以下原则 应该是您所需要的。 相关文件: StringWriter 打印作家 可投掷
因此,当我发出get()时,我得到的是一个dict,dict的“Body”成员是“StreamingBody”类型,并且根据如何使用bot3将S3对象保存到文件,我看到了如何从这个流中分块读取,但我想知道是否有更简单的方法,la boto。