1.9 个爱不释手的编l编 JSON 工具
2.开发者指南如何在MyEclipse中使用 XML编辑器
3.文本编辑器简介
4.ultraedit功能
5.å¦ä½ä¸º Editor å¼å Eclipse Outline è§å¾
6.如何在Eclipse中开发XML可视化编辑器
9 个爱不释手的 JSON 工具
阅读本文大概需要 3.2 分钟。
来自: developer.cto.com/art...
JSON因其易于使用和机器解析生成而受到开发者青睐,辑器辑器吸引了众多工具构建者的源码关注。这些工具涵盖了从在线实用程序到代码编辑器和IDE插件,开源以下介绍了九款精选JSON工具。编l编
JSONLint:CircleCell开发的辑器辑器花火物联网管理系统源码在线验证和重新格式化工具,可验证和解析“混乱”的源码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编辑器支持两种编辑模式:设计模式和源模式。设计模式以树形结构展示文件内容,提供直观的导航,并允许开发者在不需要担心语法问题的情况下添加、删除或编辑标记。设计模式的exe指标源码可视化功能确保插入有效标记,避免无效操作。例如,在设计模式中,添加"context-param"参数的操作会遵循文档引用的Schema限制。设计模式下,双击字段即可直接编辑内容,无需切换到源代码模式。
源模式提供直接的XML源代码编辑,与设计模式相比,它更加灵活,但需要开发者具备一定的XML语法知识。源模式下,错误会被标记,内容辅助功能根据当前位置和引用的DTD或架构提供建议,帮助开发者避免错误和提高效率。
在使用XML编辑器时,开发者可以依赖于对DTD或Schema的引用,以确保工作的验证和内容辅助。MyEclipse为普通XML文件提供基本的编辑功能,如语法高亮和验证,但对于不提供DTD或Schema的文件,某些高级功能可能不可用。
通过以上功能,MyEclipse XML编辑器为开发者提供了强大的工具,使得在Web开发环境中高效管理XML文件成为可能。网易源码代码如果您有任何问题或需要深入了解,欢迎在评论或私信中提问,并期待在官方社群与您交流。
文本编辑器简介
文本编辑器是用于编辑文本文件的软件工具,常见的系统下有多种文本编辑器可供选择。不同操作系统支持的编辑器有所不同,以下是对常见系统下文本编辑器的介绍。 在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)文件的python带源码创建与编辑。同时,用户还可以导出为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 编辑器未提供任何一种验证或语法检查。
四川“春雷行动”护航春节旅游 及时处置ETC收费纠纷
美國多家地區銀行利潤驟降 美聯儲警告商業地產風險
修法增訂「全薪流產假」? 勞部憂衝擊女性就業權
肯尼亚一卡車被洪水沖走 死亡人數升至8人
藍強推3大爭議修法過關!原折衷方案有譜 傳傅崐萁推翻「拒共識」
泉州:减少市民在医院逗留时间 县级以上公立医院推行线上预约