我是perl的新手所以请在下面帮助我
我有一个perl脚本来执行telnet命令。此脚本从服务器接收响应字符串。实际上服务器创建一个json字符串,然后它发送到客户端程序,但客户端程序显示为string
问题:如何将此字符串转换为json并从此json字符串中读取数据。
我的json字符串结构类似于以下
[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]
以下是我尝试将其转换为json的最后一行
@lines = $telnet->waitfor('/$/');
my @json;
@json = @{decode_json(@lines)};
打印输出如下
HASH(0x1af068c)
提前致谢!!!
答案 0 :(得分:4)
这是转换JSON的代码段。修改以捕获错误。
use strict;
use warnings;
use JSON::XS;
use Try::Tiny;
use Data::Dumper::Concise;
my $data = qq<[{"success":"21","data":[{"name":"tester","lastname":"project"}]}]>;
my $decoded;
try {
$decoded = JSON::XS::decode_json($data);
}
catch {
warn "Caught JSON::XS decode error: $_";
};
print Dumper $decoded;
答案 1 :(得分:3)
我认为有一个更简单的方法:
import java.util.Scanner;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
public class MAIN
{
public static void main(String args[])
{
ActionClass actionEvent = new ActionClass();
//Main window
JFrame Program1 = new JFrame("Program1");
Program1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Program1.setPreferredSize(new Dimension(800, 600));
Program1.pack();
Program1.setVisible(true);
//menu button (returns to home Menu)
JButton MN = new JButton("MENU");
MN.setBounds(300, 10, 200, 20);
MN.setVisible(false);
Program1.add (MN);
//MN.setActionCommand("1");
// Enter GRC
JButton GR = new JButton("GRC");
GR.setBounds(300, 40, 200, 20);
GR.setVisible(true);
Program1.add (GR);
//GR.setActionCommand("2");
GR.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent GRH)
{
MN.setVisible(true);
GR.setVisible(false);
}
}
);
MN.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent MNH)
{
MN.setVisible(false);
GR.setVisible(true);
}
}
);
}
}