JSON Query Plugin for VS Code
A powerful, standalone VS Code extension for uploading, exploring, and querying JSON files with advanced multi-field selection and deep nested field discovery up to 9 levels.
🚀 Key Features
Core Capabilities
- 🔄 Standalone Operation: No external servers required - works entirely within VS Code
- 📁 JSON File Support: Upload and query JSON files of any size and complexity
- 🕳️ Deep Nesting: Explore nested fields up to 9 levels deep
- 🎯 Multi-Field Selection: Select and view multiple fields in tabular format
- 📊 CSV Export: Export query results to CSV with VS Code's native save dialog
- 🔍 Smart Query Assistant: Intelligent field discovery and selection
Advanced Features
- 📋 Comprehensive Schema Discovery: Automatically discovers ALL nested fields
- 📄 Pagination: Handle large datasets with customizable rows per page (10, 25, 50, 100, 200)
- 🗂️ Raw Data View: View complete JSON with pagination controls
- ⚡ Real-time Query: Instant results as you select fields
- 🎨 Material-UI Interface: Professional, user-friendly interface
📦 Installation
From VS Code Marketplace (Recommended)
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X
or Cmd+Shift+X
)
- Search for "JSON Query Plugin"
- Click Install on the extension by DigitalCloudAI
Manual Installation
# Download the latest .vsix file and install
code --install-extension json-query-plugin-1.4.0.vsix
🎯 Usage Guide
Opening the Plugin
Method 1: Command Palette (Recommended)
- Press
Ctrl+Shift+P
(or Cmd+Shift+P
on Mac)
- Type "JSON Query: Open JSON Query Panel"
- Press Enter
- Right-click on any
.json
file in Explorer
- Select "Query Current JSON File"
- The file will automatically load in the query panel
- Open a
.json
file in the editor
- Right-click in the editor
- Select "Query Current JSON File"
Working with JSON Data
1. Upload JSON File
- Click "Choose JSON File" button
- Select your JSON file from the file browser
- Click "Upload & Process" to load the data
- Watch the debug info show: Schema, Available Fields count, and upload status
2. Smart Query Assistant
After uploading, the Smart Query Assistant will show:
- Total available fields discovered (up to 9 levels deep)
- Multi-select dropdown with all field paths
- Real-time field count as you make selections
3. Multi-Field Table View
- Select multiple fields using the dropdown
- Click "Query Selected Fields"
- View results in a professional table with:
- Pagination controls (10/25/50/100/200 rows per page)
- Navigation arrows (Previous/Next)
- Row counter showing current view
- CSV export button (download arrow icon)
4. Raw JSON View
- Switch to "Raw JSON" tab
- View the complete JSON data with:
- Per-page dropdown (10/25/50/100/200 records)
- Navigation controls
- Syntax highlighting
5. CSV Export
- Click the download arrow icon in any results view
- Choose save location using VS Code's native file dialog
- Export supports all data types with proper CSV formatting
📊 Example Usage
Sample JSON Structure
{
"vulnerabilities": [
{
"cve": {
"id": "CVE-2021-44228",
"sourceIdentifier": "cve@mitre.org",
"published": "2021-12-10T10:15Z",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"baseScore": 10.0,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
}
}
]
},
"weaknesses": [
{
"description": {
"value": "CWE-502",
"lang": "en"
},
"type": "Primary"
}
]
}
}
],
"metadata": {
"totalResults": 2268,
"lastModified": "2024-01-15T08:30:00Z"
}
}
Available Fields Discovered (Up to 9 Levels)
The plugin will automatically discover and make available:
vulnerabilities.cve.id
vulnerabilities.cve.sourceIdentifier
vulnerabilities.cve.published
vulnerabilities.cve.metrics.cvssMetricV31.cvssData.baseScore
vulnerabilities.cve.metrics.cvssMetricV31.cvssData.vectorString
vulnerabilities.cve.weaknesses.description.value
vulnerabilities.cve.weaknesses.description.lang
vulnerabilities.cve.weaknesses.type
metadata.totalResults
metadata.lastModified
Query Result
Selecting fields like vulnerabilities.cve.id
, vulnerabilities.cve.sourceIdentifier
, and vulnerabilities.cve.weaknesses.description.value
will produce a table:
vulnerabilities.cve.id |
vulnerabilities.cve.sourceIdentifier |
vulnerabilities.cve.weaknesses.description.value |
CVE-2021-44228 |
cve@mitre.org |
CWE-502 |
🔧 Query Types Supported
1. Multi-Field Selection (Recommended)
- Use Case: Extract specific fields for analysis
- How: Use the Smart Query Assistant dropdown
- Best For: Creating reports, data analysis, CSV exports
2. JSONPath Queries
- Syntax:
$.vulnerabilities[*].cve.id
- Use Case: Advanced filtering and array operations
- Best For: Complex data extraction
3. Simple Path Navigation
- Syntax:
vulnerabilities.cve.id
- Use Case: Direct field access
- Best For: Quick field lookups
⚙️ Advanced Configuration
Depth Limit
- Maximum nesting depth: 9 levels
- Performance: Optimized for complex JSON structures
- Memory: Efficient handling of large nested datasets
- Table View: 10, 25, 50, 100, 200 rows per page
- Raw View: 10, 25, 50, 100, 200 records per page
- Default: 25 items per page
CSV Export Features
- File Naming: Auto-generated with timestamp
- Format: Proper CSV escaping for special characters
- Size: Handles large datasets efficiently
- Save Location: User-selectable via VS Code dialog
🐛 Troubleshooting
Extension Not Loading
- Check VS Code Version: Requires VS Code ^1.75.0
- Restart VS Code: Close and reopen VS Code
- Check Extension: Ensure extension is enabled in Extensions panel
No Fields Showing in Smart Query Assistant
- Valid JSON: Ensure uploaded file is valid JSON
- Debug Info: Check "Available Fields" count in debug section
- File Size: Very large files may take time to process
- Refresh: Try uploading the file again
CSV Export Not Working
- Update Extension: Ensure you have version 1.3.9 or later
- File Permissions: Check write permissions in target directory
- Large Files: For very large exports, wait for processing to complete
- Developer Console: Check for error messages (Help → Toggle Developer Tools)
- File Size: Consider breaking large JSON files into smaller chunks
- Depth Limit: Very deep nesting (>9 levels) is automatically limited
- Pagination: Use smaller page sizes for better performance
- Memory: Close other extensions if experiencing slowdowns
The extension provides real-time debug information:
- In VS Code: Shows whether running in VS Code environment
- Schema: Indicates if JSON schema was generated
- Available Fields: Count of discovered field paths
- Uploaded Data: Confirms successful file upload
📋 Technical Specifications
Requirements
- VS Code: Version 1.75.0 or higher
- File Types: .json files
- File Size: No hard limit (performance may vary)
- Operating Systems: Windows, macOS, Linux
- Field Discovery: Up to 9 levels deep
- Array Processing: Analyzes up to 20 items per array for schema discovery
- Memory Usage: Optimized for large JSON files
- Response Time: Real-time for most operations
Architecture
- Standalone: No external dependencies or servers
- Webview: React-based UI with Material-UI components
- TypeScript: Fully typed extension code
- VS Code API: Native integration with VS Code features
🤝 Support
Getting Help
- GitHub Issues: Report bugs and feature requests
- VS Code Marketplace: Rate and review the extension
- Documentation: This README covers all features
Known Limitations
- Circular References: Automatically detected and handled
- Very Large Files: May require patience for initial processing
- Complex Queries: JSONPath support is basic (not full specification)
📝 Changelog
Version 1.4.0 (Latest)
- 🆕 Increased nested field depth to 9 levels
- 📚 Updated comprehensive README documentation
- 🐛 Enhanced error handling and debugging
Version 1.3.9
- 🐛 Fixed CSV export functionality with VS Code native save dialog
- 🔍 Added extensive debug logging
- 📋 Improved Raw view pagination
Version 1.3.8
- 📄 Added pagination to Raw JSON view
- 💾 Implemented CSV export via VS Code file system API
- 🎨 Enhanced UI consistency across views
📄 License
This extension is released under the MIT License. See the project repository for full license details.
Developed by DigitalCloudAI | Available on VS Code Marketplace