java: 모 질 라 rhino js JSON 일기예보
JSON. parse 와 JSON. stringify 라 는 두 브 라 우 저 자체 테이프 (IE6/7 제외) 방법 은 평소에 자주 사용 합 니 다.
하지만 보통 그들의 첫 번 째 매개 변수 만 사 용 됩 니 다.
예 를 들 어 문자열 변환 대상: JSON. parse ('{}');
대상 문자열: JSON. stringify ({});
https://mozilla.github.io/rhino/다운로드 rhino 17R5. zip, 압축 해제 후 cmd 실행
cd D:\rhino\rhino1_7R5
java -jar js.jar json.js
// Import the Swing GUI components and a few other classes
var swingNames = new JavaImporter(javax.swing, javax.swing.event, javax.swing.border, java.awt,java.awt.event);
importPackage(java.net);
importPackage(java.io);
importPackage(java.util);
importClass(java.lang.Thread);
with (swingNames) {
var frame = new JFrame("JSON ");
//frame.setSize(600,400);
frame.setLocation(200,200);
var txtfield = new JTextField(40); // URL entry field
var alist = [" "," "," "," "," "," "," "," "];
var blist = ["010100","020100","030100","040100","280101","210101","200101","060101"];
txtfield.setText("http://www.weather.com.cn/data/sk/101"+blist[4]+".html");
var button1 = new JButton("Go"); // Button to send
var button2= new JButton("Clear");
var filechooser = new JFileChooser(); // A file selection dialog
var row = Box.createHorizontalBox(); // A box for field and button
var col = Box.createVerticalBox(); // For the row & progress bars
var padding = new EmptyBorder(3,3,3,3); // Padding for rows
var texta = new JTextArea(10,30);
texta.setEditable(false);
texta.setLineWrap(true);
var sp = new JScrollPane(texta);
//sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
// Put them all together and display the GUIm
row.add(txtfield); // Input field goes in the row
row.add(button1); // Button goes in the row
row.add(button2);
col.add(row); // Row goes in the column
col.add(sp);
frame.add(col); // Column goes in the frame
row.setBorder(padding); // Add some padding to the row
frame.pack(); // Set to minimum size
frame.visible = true; // Make the window visible
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// KeyEvent: ENTER
txtfield.addActionListener(function() {
try {
var url = new URL(txtfield.text);
new java.lang.Thread(function() { connect(url); }).start();
} catch(e) {
JOptionPane.showMessageDialog(frame, e.message, "Exception",
JOptionPane.ERROR_MESSAGE);
}
});
// When the user clicks the button, call this function
button1.addActionListener(function() {
try {
var url = new URL(txtfield.text);
new java.lang.Thread(function() { connect(url);}).start();
} catch(e) {
JOptionPane.showMessageDialog(frame, e.message, "Exception",
JOptionPane.ERROR_MESSAGE);
}
});
// Clear
button2.addActionListener(function() {
texta.setText("");
});
//
function connect(url){
try {
var conn = url.openConnection(); // Get java.net.URLConnection
conn.setConnectTimeout(5000);
conn.connect(); // Connect and wait for headers
var input = new InputStreamReader(conn.getInputStream(),"UTF-8");
var buf = new BufferedReader(input);
var line = buf.readLine().toString();
buf.close();
input.close();
var obj = JSON.parse(line.trim());
var str ="";
if (obj == null) str = line;
else str = JSON.stringify(obj, null, 4); // 4
texta.append(str+"
");
} catch(ex){
texta.append(ex.message);
}
}
}
참고: JSON. parse 와 JSON. stringify 파라미터 상세 설명
https://www.cnblogs.com/lmh2072005/p/5985431.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.