9 个爱不释手的 JSON 工具
阅读本文大概需要 3.2 分钟。
来自: developer.cto.com/art...
JSON因其易于使用和机器解析生成而受到开发者青睐,辑器辑器吸引了众多工具构建者的源码关注。这些工具涵盖了从在线实用程序到代码编辑器和IDE插件,开源以下介绍了九款精选JSON工具。编l编
JSONLint:CircleCell开发的辑器辑器洛阳哪里有app源码在线验证和重新格式化工具,可验证和解析“混乱”的源码JSON代码,并用作压缩工具。开源访问:jsonlint.com/,编l编源代码:github.com/circlecell/j...
JSONCompare:CircleCell开发的辑器辑器JSON验证工具,可上传和验证多个批处理JSON文件,源码比较和合并JSON对象。开源访问:jsoncompare.com/,编l编源代码:github.com/circlecell/j...
jtc:JSON测试控制台,辑器辑器用于提取、源码处理和转换源JSON,支持Linux和MacOS编译二进制文件下载。访问:github.com/ldn-softdev/...
ijson:基于Python的迭代JSON解析工具,提供多种实际解析实现,访问:pypi.org/project/ijson/#...
JSON格式化和验证器:在线格式化工具,美化JSON以便阅读和调试,访问:jsonformatter.curiousconcept.com...
Altova XMLSpy JSON和 XML编辑器:提供XML相关技术的编辑、建模、转换和调试工具,访问:altova.com/xmlspy-xml-e...
Code Beautify JSON工具:提供JSON查看器、编辑器、腾讯源码多少合适验证器及转换器,还提供在线脚本编辑器、美化器等,访问:codebeautify.org/json-t...
Visual Studio Code:微软代码编辑器,内置支持编辑JSON文件的功能,访问:code.visualstudio.com/D...
Eclipse JSON编辑器插件:面向Eclipse IDE的免费JSON编辑器插件,提供语法高亮、代码折叠、格式化和编辑等功能,访问:marketplace.eclipse.org...
开发者指南如何在MyEclipse中使用 XML编辑器
在MyEclipse中使用XML编辑器提供了丰富的高级功能,包括Web XML编辑,使开发者能够高效地编辑和管理XML文件。当创建Web项目时,MyEclipse会自动在Web-inf文件夹中生成默认的Web.xml文件,您可以通过在Project Explorer中双击文件来打开。使用WebDeployment Descriptor编辑器,开发者可以方便地查看和编辑文件内容,即使在设计视图中进行更改,文件也会自动更新。
MyEclipse Web XML编辑器支持两种编辑模式:设计模式和源模式。设计模式以树形结构展示文件内容,提供直观的导航,并允许开发者在不需要担心语法问题的情况下添加、删除或编辑标记。设计模式的边缘检测源码dsp可视化功能确保插入有效标记,避免无效操作。例如,在设计模式中,添加"context-param"参数的操作会遵循文档引用的Schema限制。设计模式下,双击字段即可直接编辑内容,无需切换到源代码模式。
源模式提供直接的XML源代码编辑,与设计模式相比,它更加灵活,但需要开发者具备一定的XML语法知识。源模式下,错误会被标记,内容辅助功能根据当前位置和引用的DTD或架构提供建议,帮助开发者避免错误和提高效率。
在使用XML编辑器时,开发者可以依赖于对DTD或Schema的引用,以确保工作的验证和内容辅助。MyEclipse为普通XML文件提供基本的编辑功能,如语法高亮和验证,但对于不提供DTD或Schema的文件,某些高级功能可能不可用。
通过以上功能,MyEclipse XML编辑器为开发者提供了强大的工具,使得在Web开发环境中高效管理XML文件成为可能。linux驱动模型源码如果您有任何问题或需要深入了解,欢迎在评论或私信中提问,并期待在官方社群与您交流。
文本编辑器简介
文本编辑器是用于编辑文本文件的软件工具,常见的系统下有多种文本编辑器可供选择。不同操作系统支持的编辑器有所不同,以下是对常见系统下文本编辑器的介绍。 在Windows系统中,记事本是最常用的文本编辑器。用户可以通过“开始/运行”输入“edit”命令启动文本编辑器,也可以在命令提示符(cmd)下输入“edit”命令进入。文本编辑器的界面类似于C语言的编辑器,提供了一种简单实用的文本编辑方式。 在Mac OS X系统中,文本编辑器(TextEdit.app)是默认的文本编辑工具。用户可以在“磁盘”下的“应用程序”文件夹或通过“Launchpad”(对于Mac OS X Lion .7及以上版本)找到并打开文本编辑器。文本编辑器支持多种文本格式,包括.rtf、.rtfd、.html、.webarchive、.odt、.docx、.xml、.doc和纯文本(.txt)文件的免费领取导航源码创建与编辑。同时,用户还可以导出为PDF格式的便携文档。文本编辑器能够打开几乎所有与Mac OS X兼容的文稿格式,并在Mac OS X Lion系统下支持格式化功能。 在Linux系统中,用户有多种文本编辑器可供选择,包括vi、emacs、gedit和DOS下的edit等。这些编辑器提供了丰富的功能和定制选项,满足不同用户的需求。例如,vi和emacs是全功能的文本编辑器,具有强大的文本处理功能和脚本编写能力;gedit是面向用户友好的图形化文本编辑器,提供直观的界面和丰富的预览功能。 总的来说,文本编辑器是用于编写、修改和管理文本文件的强大工具。根据操作系统和用户需求的不同,可以选择合适的文本编辑器。从Windows的记事本、Mac OS X的TextEdit,到Linux下的多种编辑器,它们都为用户提供了一个高效、灵活的文本编辑环境。扩展资料
文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(或称文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理)。它常用来编写程序的源代码。ultraedit功能
UltraEdit是一款功能全面且灵活好用的文本编辑器,特别适合源代码编写。它能用作普通文本文件编辑器、批处理文件编辑器,以及C、C++、Java、JSP、HTML、XML等源代码编辑器。支持本地文件或通过FTP远程操作文件。 UltraEdit能对文本文件进行排序,支持自定义排序方式;对进制文件进行字节修改;对文件内容进行整体操作,如格式转换、内容编辑等;统计文本文件或源代码文件的字符、词数量;对项目进行操作。 作为源代码编辑器,UltraEdit提供语法着色,使用户清晰区分代码成分。支持JAVA、PERL、HTML、XML、C#、C/C++、Visual Basic等语言的语法着色,适合直接编写代码。用户可以自定义着色方式,甚至增加不认识的语言进行着色。 在编辑JAVA程序时,UltraEdit能识别关键词并进行着色,区分变量和字符串等。新版本支持自动完成文件配置,实现IDE的自动补全功能。对于HTML、JSP、ASP等文件,UltraEdit能区分scriptlet和HTML代码,并进行着色,提供HTML TAG和特殊字符的全面支持,方便查找和使用。 UltraEdit具备丰富的编辑功能,包括查找、替换、搜索、正则表达式查找、进制编辑、书签定义、滚动到特定行、只读设置、括号匹配、文件信息查看、空格清除、自动缩行、大小写转换、文件格式转换等。 UltraEdit拥有特色功能,如插入颜色、插入当前时间、ASCII码查找、拼写检查、行排序、内容发送至邮箱、文件比较、行选择模式和区域选择等。其强大的编辑功能可以与优秀IDE相媲美,支持通过配置javac和java命令实现直接编译和运行代码。 UltraEdit支持FTP方式工作,用户可以编辑远程服务器上的文件,编辑完成后通过FTP保存,特别适用于JSP、ASP、HTML等文件的编写。 配置编译器和运行指令在高级->工具配置菜单中完成。用户可以自定义命令行输入,指定工作目录,实现编译和运行功能。扩展资料
UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,完全可以取代记事本(如果电脑配置足够强大),内建英文单字检查、C++ 及 VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。软件附有 HTML 标签颜色显示、搜寻替换以及无限制的还原功能,一般用其来修改EXE 或 DLL 文件。能够满足你一切编辑需要的编辑器。å¦ä½ä¸º Editor å¼å Eclipse Outline è§å¾
å®å¶ Outline è§å¾å¼åå®ä¾æ¬èå°éè¿å®ç°ä¸ä¸ªç®åç XML ææ¡£ç¼è¾å¨åå ¶ Outline Page æ¥è¯´æå¦ä½ä¸º Editor å¼åå ¶ Outline è§å¾ãå¾ 3 å±ç¤ºäºå®ä¾å®ææ¶çææï¼å¾ç左侧为ä¸ä¸ªç®åç XML ææ¬ç¼è¾å¨ï¼å³ä¾§ç Outline è§å¾å°ææ¡£ç XML ç»ç¹ä»¥æ åçæ¹å¼å±ç°åºæ¥ã
å¾ 3. XML Editor å Outline è§å¾
第ä¸æ¥ï¼æ建 XML ææ¡£ç¼è¾å¨ãXML ææ¡£ç¨æ¥åå¨ãä¼ éåæºå¸¦æ°æ®ä¿¡æ¯ï¼ä¸ç¨æ¥è¡¨ç°åå±ç°æ°æ®ãå æ¤å¨æ¬æçä¾åä¸çï¼æä»¬å° XML ææ¡£ç¼è¾å¨è§ä¸ºä¸ä¸ªææ¬ç¼è¾å¨ï¼éè¿ç»§æ¿ org.eclipse.ui.editors.text.TextEditor æ¥å®ç°æ们èªå·±ç XML ç¼è¾å¨ãåæ¶æ们éè¿ org.eclipse.core.contenttype.contentTypes æ©å±ç¹ä¸º xml æ件ç»å®ä¸ºæ们èªå®ä¹çä¸ç§å 容类åï¼å¹¶å°å ¶ç»å®å°æ们çæ°å»ºçç¼è¾å¨ä¸ï¼å½æå¼åç¼ä¸º .xml çæ件æ¶ï¼è¯¥ç¼è¾å¨å°ä¼è¢«åå§åã
æ¸ å 2. Editor æ©å±ç¹å®ä¹
<plugin>
<extension
point="org.eclipse.ui.editors">
<editor
class="cn.com.hf.outline.editor.XMLEditor"
default="true"
extensions="xml"
id="cn.com.hf.outline.XMLEditor"
name="XMLEditor">
<contentTypeBinding
contentTypeId="cn.com.hf.outline.xmlfile">
</contentTypeBinding>
</editor>
</extension>
<extension
point="org.eclipse.core.contenttype.contentTypes">
<content-type
id="cn.com.hf.outline.xmlfile"
name="XMLFile"
priority="high">
</content-type>
<file-association
content-type="cn.com.hf.outline.xmlfile"
file-extensions="xml">
</file-association>
</extension>
</plugin>
第äºæ¥ï¼æ们该为 Editor æ建 Content Outline Pageï¼ç¨äºå¨ Outline è§å¾ä¸å±äº Editor ä¸çå 容å ç´ ãä½ä¸º Outline Pageï¼æ们éè¦å®ç° IContentOutlinePage æ¥å£ãæ们å¯ä»¥å° XML ææ¡£ä¸çæ°æ®æé æä¸ä¸ªæ åçç»æãå æ¤ï¼æ们éç¨ TreeViewer ä½ä¸ºæ们 Outline Page ä¸ç主è¦ç UI å ç´ ãEclipse æ¡æ¶ä¸ºæ们æä¾äºä¸ä¸ªé»è®¤çå å«æ ç¶è§å¾ç ContentOutlinePageï¼è¯¥ç±»ä¸ºæ½è±¡ç±»ï¼æ们éè¿ç»§æ¿è¯¥ç±»æ¥å®ç°æ们éè¦ç大纲è§å¾é¡µé¢ã
æ¸ å 3. XMLOutlinePage.java
public class XMLOutlinePage extends ContentOutlinePage{
@Override
public void createControl(Composite parent) {
super.createControl(parent);
this.getTreeViewer().setLabelProvider(new XMLOutlineLabelProvider());
this.getTreeViewer().setContentProvider(new XMLOutlineContentProvider());
}
}
大纲页é¢ä¸çæ åæ§ä»¶æå±ç°ç为 XML ææ¡£çæ°æ®ç»ç¹ï¼æ们为 TreeViewer æä¾ ContentProvider å LabelProviderï¼ç¨äºéåç»ç¹å ç´ åæ¾ç¤ºç»ç¹çå称ã
æ¸ å 4. XMLOutlineContentProvider å XMLOutlineLabelProvider
public class XMLOutlineContentProvider implements ITreeContentProvider {
@Override
public Object[] getElements(Object inputElement) {
Element root = (Element)inputElement;
return root.getChildren().toArray();
}
@Override
public Object[] getChildren(Object parentElement) {
Element parent = (Element)parentElement;
return parent.getChildren().toArray();
}
@Override
public Object getParent(Object element) {
return ((Element)element).getParent();
}
@Override
public boolean hasChildren(Object element) {
return ((Element)element).getChildren().size() > 0;
}
}
public class XMLOutlineLabelProvider implements ILabelProvider {
@Override
public Image getImage(Object element) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getText(Object element) {
return ((Element)element).getAttributeValue("name");
}
}
第ä¸æ¥ï¼å°æ们ç XML ç¼è¾å¨ä¸å®ç°ç大纲页é¢å ³èèµ·æ¥ï¼å¦ä¸è¡¨æ示ï¼å¨ getAdapter() æ¹æ³ä¸ï¼å½ä¼ å ¥çåæ°ä¸º IContentOutlinePage æ¶ï¼è¯´æ Outline è§å¾å Editor æ¥è¯¢å¤§çº²é¡µé¢ï¼å½å½æ°çè¿åä¸ä¸ºç©ºæ¶ï¼å¤§çº²è§å¾å°ä¼æ页é¢å±ç°åºæ¥ã
æ¸ å 5. XMLEditor getAdapter æ¥å£
public class XMLEditor extends TextEditor{
@Override
public Object getAdapter(Class adapter) {
if (adapter == IContentOutlinePage.class) {
Element root = this.getRootElement();
if (root != null) {
XMLOutlinePage page = new XMLOutlinePage(root);
this.addListenerObject(page);
return page;
}
}
return super.getAdapter(adapter);
}
}
æ们çç¼è¾å¨æ¯ä»¥ææ¬çæ¹å¼æ¾ç¤º XML å 容ï¼å æ¤æ们éè¦å°ææ¬è§£ææ XML ææ¡£å ç´ ï¼æè½å°å ¶æ¾ç¤ºå¨å¤§çº²çæ åç»ç¹ä¸ãå¨æ¬æçä¾åä¸ï¼æä»¬ä½¿ç¨ JDOM ç±»åºæ¥è§£æ XML ææ¡£ï¼æ们æä¾çæºä»£ç ä¸å å«äºè¯¥ç±»åºï¼è¯»è ä¹å¯ä»¥éè¿å ¶å®æ¹ç½ç«è¿è¡ä¸è½½ã
æ¸ å 6. XML Editor çå®ç°
public class XMLEditor extends TextEditor{
public Element getRootElement(){
try {
IDocument doc = this.getDocumentProvider().getDocument(
this.getEditorInput());
String text = doc.get();
SAXBuilder builder = new SAXBuilder();
Reader in = new StringReader(text);
if (builder != null) {
Document document = builder.build(in);
Element root = document.getRootElement();
return root;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
public class XMLOutlinePage extends ContentOutlinePage
public XMLOutlinePage (Element root){
this.root = root;
}
@Override
public void createControl(Composite parent) {
super.createControl(parent);
this.getTreeViewer().setLabelProvider(new XMLOutlineLabelProvider());
this.getTreeViewer().setContentProvider(new XMLOutlineContentProvider());
this.getTreeViewer().setInput(root);
}
}
第åæ¥ï¼ä¸º XML ç¼è¾å¨æ³¨åçå¬å¨ãå½ Editor çææ¬åçååæ¶ï¼Editor ä¼äº§çä¸ä¸ªå±æ§å为 IEditorPart.PROP_DIRTY çäºä»¶ï¼è¡¨æå 容被修æ¹ï¼æ¤æ¶ï¼æ³¨åå¨è¯¥å±æ§ä¸ççå¬å¨å°±ä¼è¢«è°ç¨ãæä»¬å° Outline 页é¢å®ç°ä¸º IEditorPart.PROP_DIRTY ç±»åççå¬å¨ï¼å½ææ¬å 容ååæ¶ï¼é¡µé¢ä¸æ åç»ç¹ä¹å°åçç¸åºçååã
æ¸ å 7. å° XMLOutlinePage å ³èå° XMLEditor
public class XMLOutlinePage extends ContentOutlinePage implements IPropertyListener{
@Override
public void propertyChanged(Object source, int propId) {
if(propId == IEditorPart.PROP_DIRTY){
this.getTreeViewer().setInput(((XMLEditor)source).getRootElement());
}
}
}
public class XMLEditor extends TextEditor {
@Override
public Object getAdapter(Class adapter) {
if (adapter == IContentOutlinePage.class) {
Element root = this.getRootElement();
if (root != null) {
XMLOutlinePage page = new XMLOutlinePage(root);
this.addListenerObject(page);
return page;
}
}
return super.getAdapter(adapter);
}
}
第äºæ¥ï¼ä¸º Outline è§å¾æ·»å å·¥å ·æ æé®ã大纲页é¢ä¸çç»ç¹å ç´ çæååºåæ¯æç §å ¶å¨ XML ææ¡£ä¸åºç°çå å顺åºæåçï¼è¿æ ·ç¨æ·å¨æ¥æ¾èµ·æ¥å°±ç¸å½çä¸æ¹ä¾¿ï¼å æ¤æ们å¯ä»¥å¨ Outline è§å¾ä¸æ·»å ä¸ä¸ªæåºæé®ï¼å°å¤§çº²é¡µé¢ä¸å ç´ æå ¶å称çåæ¯åºè¿è¡æåï¼ä»¥æ¹ä¾¿æ¥æ¾ã
é¦å æä»¬å¨ XMLOutlinePage ä¸å建ä¸ä¸ªå é¨ç±» SortActionï¼å ¶ä½ç¨æ¯ç»å¤§çº²é¡µé¢ç TreeViewer 设置æåºå¨ï¼ä¸»è¦ä»£ç å¦ä¸æ示ãå¨ valueChange() æ¹æ³ä¸ï¼å½æ们éä¸æåºæé®æ¶ï¼ä¸ºå ¶æ·»å ä¸ä¸ªåæ¯åºçææåºå¨ï¼å¦åæåºå¨é»è®¤ä¸ºç©ºï¼å ç´ æå ¶å¨ææ¡£ä¸åºç°ç顺åºæåã
æ¸ å 7. SortAction
private ViewerComparator lexComparator = new ViewerComparator(new LexComparator());
private class SortAction extends Action{
public SortAction() {
super();
this.setId("cn.com.hf.outline.page.sortAction");
this.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
"XMLEditorOutline", "icons/alphab_sort_co.gif"));
this.setDisabledImageDescriptor(AbstractUIPlugin
.imageDescriptorFromPlugin("XMLEditorOutline",
"icons/alphab_sort_co_dl.gif"));
this.setEnabled(true);
this.valueChange(false);
}
@Override
public void run() {
this.valueChange(isChecked());
}
private void valueChange(final boolean on) {
this.setChecked(on);
final TreeViewer viewer = getTreeViewer();
BusyIndicator.showWhile(viewer.getControl().getDisplay(),
new Runnable() {
public void run() {
if (on){
viewer.setComparator(lexComparator);
} else {
viewer.setComparator(null);
}
}
});
}
}
æ¥çï¼æ们è½è¿ pageSite è·å¾ Outline è§å¾å·¥å ·æ å®ä¾ï¼å° SortAction æ·»å å°å·¥å ·æ ä¸ãpageSite æ¯å¤§çº²é¡µé¢ä¸å¤é¨ UI å ç´ è¿è¡éä¿¡çæ¡¥æ¢ï¼å½ Outline 页é¢åå§åæ¶ï¼workbench ä¼åå§å OutlinePage ç pageSite å±æ§ï¼æ¤æ¶ï¼éè¿ pageSite å°±å¯ä»¥è·å¾å¤é¨ç UI å ç´ ï¼å¦ä¸ä¸æèåæé®ï¼å·¥å ·æ çï¼å¯¹é¡µé¢è¿è¡å®å¶ã
æ¸ å 8. 为 OutlinePage å建 UI å ç´
public class XMLOutlinePage extends ContentOutlinePage implements IPropertyListener{
public void createControl(Composite parent) {
super.createControl(parent);
this.getTreeViewer().setLabelProvider(new XMLOutlineLabelProvider());
this.getTreeViewer().setContentProvider(new XMLOutlineContentProvider());
this.getTreeViewer().setInput(root);
bar = this.getSite().getActionBars();
bar.getToolBarManager().add(new SortAction());
bar.updateActionBars();
}
}
如何在Eclipse中开发XML可视化编辑器
Eclipse中开发XML可视化编辑器开发说明。
Eclipse XML编辑器
Eclipse 已经包括一个非常简单的 XML 编辑器的源代码,这个编辑器只提供 XML 语法的突出显示。它继承 org.eclipse.ui.editors 包中包括的类,这个包为 Eclipse 平台提供一个标准文本编辑器和基于文件的文档提供程序。这个简单的 XML 编辑器起着代码示例的作用,您可以把它作为自己的 Eclipse XML 插件的基础。它的源代码只能通过 Eclipse 项目向导生成,您需要按下面所描述的自己编译它。
要构建这个基本 XML 编辑器,转至菜单 File => New,然后选择 Project.在项目向导中,选择 Plug-in Development => Plug-in Project.
如果看不到 Plug-in Development 选项,则表示 Eclipse 平台 Runtime Binary 没有 Plug-in 开发环境。请到 eclipse.org 下载页面下载 Eclipse 平台 Plug-in SDK.
单击 Next.给项目命名(如 org.my.eclipse.xmleditor),单击 Next,然后接受屏幕 Plug-in Project Structure 上的缺省值。接下来选择 Create a plug-in project using a code generation 向导,然后选择 Plug-in with an editor 选项。向导会自动生成该 XML 编辑器的源代码。
但仍需编译它。单击 Next,然后在下一屏幕 Simple Plug-in Content 上单击 Finish 选项; 转至 Project 菜单并选择 Rebuild All 来构建该项目。
接下来需要使用 File => Export 菜单创建 editor.jar 文件。请退出 Eclipse,然后复制整个 org.my.eclipse.xmleditor plugin 目录。当您再次运行 Eclipse 时,可将一个 XML 文件添加到您的项目中。请记住这个样本 XML 编辑器未提供任何一种验证或语法检查。
2024-11-13 09:58
2024-11-13 09:45
2024-11-13 09:43
2024-11-13 08:16
2024-11-13 07:49